在PIG中为UDF添加依赖jar

时间:2013-08-13 05:23:02

标签: hadoop apache-pig

我有一个UDF,我用它来对记录进行自定义处理。在eval函数中,我使用第三方jar进行处理。我看到了作业jar文件,但它不包含这种依赖项。有没有办法在工作罐中包含依赖jar? (为了测试我在本地模式下运行集群。)

或者我可以使用分布式缓存使依赖jar可用于UDF吗?

我已经尝试在猪身上注册依赖的罐子。对于第一个注册的jar(所有udfs都捆绑在这个jar中)我没有遇到问题。但是对于第二个jar,我在UDF尝试从中访问类时遇到问题。

REGISTER '/home/user/pig/udfrepository/projectUDF.jar'
REGISTER '/home/user/thridpartyjars/xyz.jar';

我在控制台上获得的日志是这样的:

2013-08-11 10:35:02,485 [Thread-14] WARN  org.apache.hadoop.mapred.LocalJobRunner - job_local_0001
java.lang.NoSuchMethodError: org.xyz.abc.convertToOtherFormat(Lorg/DateTimeZone;)Lorg/DateTime;
        at com.myproject.MyUDF.exec(MyUDF.java:70)

对此的任何帮助都非常感谢。 提前谢谢。

1 个答案:

答案 0 :(得分:1)