Java Pig UDF 中的依赖项

Java dependencies in Pig UDF

我写了一个使用 Joda Time 的 UDF。我将它作为依赖包含在 pom.xml 中。当我 运行 我的猪脚本时,我收到错误

ERROR 2998: Unhandled internal error. org.joda.time.LocalDate.parse(Ljava/lang/String;)Lorg/joda/time/LocalDate;

我对 java、maven 和 hadoop 还很陌生。我如何将 joda 捆绑到我在集群上 运行 的 jar(如 c/c++ 中的静态链接)?

不是 how to include external jar file using PIG 的副本,因为我不能使用 -D 选项并且在 pig 脚本中注册 Joda Time 没有效果。

问题是猪与 Joda 1.6 一起提供,其中 LocalDate 没有 parse() 方法。最简单和最安全的修复方法是在 maven 中使用 1.6 并使用 1.6 Joda Time 重写代码。