Pig ERROR 2998:未处理的内部错误(错误名称 MY_CLASS_NAME)
Posted
技术标签:
【中文标题】Pig ERROR 2998:未处理的内部错误(错误名称 MY_CLASS_NAME)【英文标题】:Pig ERROR 2998: Unhandled internal error (wrong name MY_CLASS_NAME) 【发布时间】:2015-12-03 15:29:45 【问题描述】:尝试在 Pig 中定义我的 UDF 时出错 这是我的猪脚本:
REGISTER 'hdfs://localhost:54310/folder/myudf.jar';
DEFINE MYUD myudf.REDECODE();
当我执行第二行时,我收到此错误消息
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2998: Unhandled internal
error. myudf/REDECODE (wrong name: REDECODE)
我的 udf 函数:
import java.io.IOException;
import java.util.regex.Pattern;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import org.apache.pig.PigWarning;
import org.apache.pig.data.DataType;
import org.apache.pig.impl.util.WrappedIOException;
import org.apache.pig.impl.logicalLayer.schema.Schema;
public class REDECODE extends EvalFunc<String>
...
如果你能帮我解决这个问题,请。
【问题讨论】:
myudf 包中有 REDECODE 类吗?我在 UDF 类中没有看到包声明语句。 我不在课堂上使用包 在这种情况下,您必须将 DEFINE 语句修改为:DEFINE MYUD REDECODE();我觉得不需要这个 DEFINE 语句你可以直接使用 REDECODE() 谢谢你,我删除了DEFINE,我直接用你说的重新解码 问题解决了吗? 【参考方案1】:根据@Badr cmets,REDECODE 类是在默认包中定义的,我们可以直接在脚本中使用 REDECODE,或者如果我们需要 REDECODE 的简单别名,那么我们可以使用 DEFINE 并定义别名并继续使用别名.
【讨论】:
以上是关于Pig ERROR 2998:未处理的内部错误(错误名称 MY_CLASS_NAME)的主要内容,如果未能解决你的问题,请参考以下文章
Pig ERROR 2998:未处理的内部错误。静态(错误名称:com/company/Static)
Pig ERROR 2998:未处理的内部错误(错误名称 MY_CLASS_NAME)
Pig 0.13 错误 2998:未处理的内部错误。 org/apache/hadoop/mapreduce/task/JobContextImpl
Pig错误:ERROR 2998: Unhandled internal error. Found interface jline.Terminal, but class was expected(示