首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Pig拉丁文加载UDF时出现的ClassCastException错误

用Pig拉丁文加载UDF时出现的ClassCastException错误
EN

Stack Overflow用户
提问于 2014-02-12 04:15:14
回答 2查看 659关注 0票数 0

我刚开始学习拉丁文,并试图实现一个UDF,但是遇到了以下错误。

误差

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: 
<line 5, column 28> Failed to generate logical plan. Nested exception: java.lang.ClassCastException: power cannot be cast to org.apache.pig.EvalFunc
Details at logfile: /home/training/pig_1392253062989.log

脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REGISTER 'hdfs://cloudera-vm:8020/user/training/pig/pow.jar';

base = load 'hdfs://cloudera-vm:8020/user/training/pig/base' using PigStorage(',') as (id:int,base:int);

exponent = load 'hdfs://cloudera-vm:8020/user/training/pig/exponents' using 
PigStorage(',') as (id:int,exp:int);

tab = join base by id, exponent by id;

tab2 = foreach tab generate $1 as base, $3 as exp;

fin = foreach tab2 generate power(tab2.$0,tab2.$1);

UDF

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.io.IOException;

import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;


public class power extends EvalFunc<Integer>
{

    public Integer exec(Tuple arg0) throws IOException {
        int base = (Integer)arg0.get(0);
        int exponent = (Integer)arg0.get(1);
        int result=1;

        for(int i=1;i<=exponent;i++)
            result=result*base;

        return result;
    }

}

数据文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Base

1,2    
2,3
3,4    
4,5
5,6
6,7
7,8
8,9
9,10

exponents

1,2
2,3
3,3
4,4
5,2
6,5
7,7
8,4
9,5
EN

回答 2

Stack Overflow用户

发布于 2014-02-12 08:18:30

如果您的目标是计算tab2.$0 ^ tab2.$1,您可能需要考虑使用内置的POW。否则,如果您真的想使用您自己的UDF,我建议将类放入包中,在您的猪脚本中使用一个完全限定的名称,并检查您的类路径。您可能在类路径中的某个地方有错误的类pow

票数 0
EN

Stack Overflow用户

发布于 2014-02-13 00:42:05

好的问题在我的脚本命令中,因为我没有传递两个输入,这导致了“在访问第二个字段时超出边界访问”的错误。

寄存器'hdfs://0.0.0.0:8020/user/training/pig/pow.jar';

base = PigStorage(',')作为(id:int,base:int)加载‘hdfs://0.0.0.0:8020/user/育成/猪/基’;

指数= load 'hdfs://0.0.0.0:8020/user/training/pig/exponents‘使用PigStorage(',') as (id:int,exp:int);

制表符=以id连接基,以id为指数;

tab2 = foreach选项卡生成1美元作为基础,3美元作为exp;

fin = foreach tab2生成abc.power(base,exp);

倾卸鳍;

最终Java代码

enter code here

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package abc;

import java.io.IOException;

import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import org.apache.pig.data.TupleFactory;


public class power extends EvalFunc<Tuple> {

    public Tuple exec(Tuple input) throws IOException {

        int base = (Integer)input.get(0);
        int exponent = (Integer)input.get(1);
        double result=1.0;
        Tuple out = TupleFactory.getInstance().newTuple(3);

        for(int i=1;i<=exponent;i++)
                {result=result*base;}
        out.set(0, input.get(0));
        out.set(1, input.get(1));
        out.set(2, result);

        return out;

    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21727682

复制
相关文章
如何给Apache Pig自定义UDF函数?
近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天时间,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,散仙打算介绍下如何在Pig中,使用用户自定义的UDF函数,关于学习经验,散仙会在后面的文章里介绍。 一旦你学会了UDF的使用,就意味着,
我是攻城师
2018/05/11
1.1K0
Typecho评论时可能出现的错误
根据URL得知应该是在发评论的时候出现的错误。很奇怪,因为很久之前这位博友jiuki's blog也给我反馈过一次。说明这问题不是偶然出现的,所以必须要解决才行。
Melody132
2020/03/13
1.5K0
如何给Apache Pig自定义UDF函数?
近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,本人本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)本人一直没有接触过,所以只能临阵磨枪了,花了两天时间,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,本人打算介绍下如何在Pig中,使用用户自定义的UDF函数,关于学习经验,本人会在后面的文章里介绍。
星哥玩云
2022/07/03
4630
如何给Apache Pig自定义UDF函数?
Spark UDF加载外部资源
由于Spark UDF的输入参数必须是数据列column,在UDF中进行如Redis查询、白/黑名单过滤前,需要加载外部资源(如配置参数、白名单)初始化它们的实例。若它们都能被序列化,从Driver端初始化+broadcast的方式可以完成构建。而Redis、字典树等存在不能序列化的对象,也就无法从Driver端发送到Excutor端。因此,整体的思路是:在Driver端初始化可以被序列化的资源,在Excutor端利用资源构建不可序列化对象,从而分布完成整个对象的构建。
mikeLiu
2020/08/28
5.4K0
访问网时出现403 Forbidden错误的原因:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113700.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
10.1K1
IDEA远程提交hadoop任务时出现的错误
上述问题解决:开启historyserver服务 mr-jobhistory-daemon.sh start historyserver
ZONGLYN
2019/08/08
2.3K0
navicat连接mysql时出现2003(10060)错误
参考http://jingyan.baidu.com/article/95c9d20dac9040ec4f75617a.html,发现是防火墙未关闭;
全栈程序员站长
2021/06/21
8.1K1
navicat连接mysql时出现2003(10060)错误
Eclipse保存文件时出现字符编码错误
eclipse 由于开源所以支持了比较杂的编码方式,而这些一个工程导入时添加了不少的外来程序,由于不是同一工程一次编码带来了其中含有 GBK 或 UTF8 或 UTF16 或 ASCII 等文件编译时就会出现错误警告。
黑泽君
2018/10/11
3.4K0
关于首次运行Hadoop的Grep案例时出现的错误
重点关注这句“19/05/14 18:26:55 INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknownHostException: hadoop101: hadoop101: Temporary failure in name resolution”,其为hostname可能存在问题,因此去查看/etc/sysconfig/network文件和/etc/hosts文件,发现其network文件中的“HOSTNAME=”后多打了一个空格,把其去掉,即可,问题解决
可定
2020/04/20
4.5K0
Apache Pig如何通过自定义UDF查询数据库(五)
image.png GMV(一定时间内的成交总额)是一个衡量电商网站营业收入的一项重要指标,例如淘宝,京东都有这样的衡量标准,感兴趣的朋友可以自己科普下这方面的概念知识。 当然散仙今天,并不是来解释概念的,而是记录下最近工作的一些东西,原来我们平台的GMV只有一个总的成交金额,并没有细分到各个系统的GMV的比重,比如搜索端,推荐端,移动端等等。 通过细粒度的分析各个系统所占的比重,对于指导各个系统完善和发展有一定的重要意义,这里不就深说了,下面先来看下散仙分析的搜索gmv的数据布局方式。
我是攻城师
2018/05/11
1.1K0
解决TestFlight提交时出现的ITMS-90426错误问题
在iOS应用开发中,我们经常使用TestFlight进行内测和分发应用程序。然而,有时候
iOS程序应用
2023/05/12
1.8K0
Java 继承关系中的 java.lang.ClassCastException 错误
但是在继承对象之间的强制转换可能会遇到 java.lang.ClassCastException 异常的错误。
HoneyMoose
2022/01/22
1.5K0
Java 继承关系中的 java.lang.ClassCastException 错误
解决TestFlight提交时出现的ITMS-90426错误问题
在iOS应用开发中,我们经常使用TestFlight进行内测和分发应用程序。然而,有时候
iOS Magician
2023/05/12
1.9K0
vue cdn引入 页面加载时出现模版渲染问题
bug问题出现的原因 vue的文件还未加载或还在加载中就会出现vue源码 我们可以使用 v-cloak 指令来解决这一问题。
河湾欢儿
2022/09/21
1.2K0
vue cdn引入 页面加载时出现模版渲染问题
IDEA 出现错误:找不到或无法加载主类
解决方法: idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 解决方法二: 在这里设置自己的java文件的目录位置
孙晨c
2019/09/10
6.7K1
IDEA 出现错误:找不到或无法加载主类
office打开文件时出现向程序发送命令时出现问题_向文件发送命令时错误
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说office打开文件时出现向程序发送命令时出现问题_向文件发送命令时错误,希望能够帮助大家进步!!!
Java架构师必看
2022/10/24
8.1K0
【SAP SD系列】销售订单创建保存时,出现错误
在创建销售订单时,保存之后,出现如下显示: 点放大镜出现: 出现上面红色错误的时候 怎么解决 解决办法如下: 这个是开启配置了销售订单的合法控制   属于外贸关税的配置里面的   要关闭订单类型的合法控制检查即可 路径:销售分销-外贸关税-合法控制 凭证控制 把合法控制 由 C 改为 空
matinal
2020/11/17
4.7K0
【SAP SD系列】销售订单创建保存时,出现错误
android开发 加载so库的解析和出现的各种错误分析
早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!
再见孙悟空_
2023/02/10
2.4K0
android开发 加载so库的解析和出现的各种错误分析
点击加载更多

相似问题

执行UDF时出现Pig错误1070

10

用Pig拉丁文加载.xls文件

10

Pig UDF加载问题

10

使用架构加载Pig时出现错误

00

用Pig拉丁文用FOREACH读取变量的

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文