【问题标题】:Pig ERROR 2998: Unhandled internal error (wrong name MY_CLASS_NAME)Pig ERROR 2998:未处理的内部错误(错误名称 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,我直接用你说的重新解码
  • 问题解决了吗?

标签: apache-pig udf


【解决方案1】:

根据@Badr cmets,REDECODE 类是在默认包中定义的,我们可以直接在脚本中使用 REDECODE,或者如果我们需要 REDECODE 的简单别名,那么我们可以使用 DEFINE 并定义别名并继续使用别名.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2014-01-28
    • 2022-08-17
    相关资源
    最近更新 更多