【问题标题】:Error while using python udf in Pig在 Pig 中使用 python udf 时出错
【发布时间】:2015-01-26 01:50:31
【问题描述】:

我正在尝试使用 python udf,但它抛出错误。我正在使用 CDH5.2

cat /home/spanda20/pig_data/panda1.py
def get_length(data):
    return len(data)

REGISTER '/home/spanda20/pig_data/panda1.py' USING jython  as my_udf;

grunt>  A = LOAD 'hdfs://itsusmpl00509.jnj.com:8020/user/spanda20/pig_1.dat' USING PigStorage(',') AS (name:chararray, id:int);
grunt>  B = FOREACH A GENERATE name, id,my_udf.get_length(name) as name_len;

2015-01-25 20:47:15,243 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1070:无法解决 my_udf.get_length 使用导入:[, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] 详情见 日志文件:/home/spanda20/pig_1422230028021.log

【问题讨论】:

  • home/spanda20/pig_1422230028021.log的内容是什么
  • 您能发布该日志文件的相关部分吗?我能够使用最少的测试数据集在 HDP 2.2(Pig 0.14,Hadoop 2.6)上成功运行您的 UDF。
  • 错误 1070:无法使用导入解析 my_udf.get_length:[, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] 无法解析: Pig 脚本解析失败: 无法生成逻辑计划。嵌套异常:org.apache.pig.backend.executionengine.ExecException:错误 1070:无法使用导入解析 my_udf.get_length:[、java.lang.、org.apache.pig.builtin.、org.apache.pig.impl .builtin.]
  • 当您运行 REGISTER 命令时,控制台的响应是什么?
  • 注册机好像不工作了。尝试关闭猪客户端。再次打开客户端。并运行你的命令。

标签: hadoop hive apache-pig


【解决方案1】:

有时,在 UDF 的 pig REGISTER 命令失败后,您可能需要重新启动客户端才能让 PIG 重新加载 UDF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多