レコードでカスタム処理を行うために使用する UDF があります。eval 関数では、処理にサードパーティの jar を使用しています。ジョブの jar ファイルを見ましたが、この依存関係は含まれていません。ジョブ jar に依存 jar を含める方法はありますか? (テストのために、クラスターをローカルモードで実行しています)。
または、分散キャッシュを使用して、依存する jar を UDF で使用できるようにすることはできますか?
依存するjarを豚に登録しようとしました。最初に登録された jar (すべての udfs がこの jar にバンドルされています) については、問題に直面していません。しかし、2 番目の 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)
これに関するヘルプは大歓迎です。前もって感謝します。