Java UDF 関数で小さなマップ ファイルを使用しており、コンストラクターを介して Pig からこのファイルのファイル名を渡したいと考えています。
以下は、私のUDF関数の関連部分です
public GenerateXML(String mapFilename) throws IOException {
this(null);
}
public GenerateXML(String mapFilename) throws IOException {
if (mapFilename != null) {
// do preocessing
}
}
Pigスクリプトには、次の行があります
DEFINE GenerateXML com.domain.GenerateXML('typemap.tsv');
これはローカル モードでは機能しますが、分散モードでは機能しません。コマンドラインで次のパラメーターをPigに渡しています
pig -Dmapred.cache.files="/path/to/typemap.tsv#typemap.tsv" -Dmapred.create.symlink=yes -f generate-xml.pig
そして、次の例外が発生しています
2013-01-11 10:39:42,002 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse:
<file generate-xml.pig, line 16, column 42> Failed to generate logical plan. Nested exception: java.lang.RuntimeException: could not instantiate 'com.domain.GenerateXML' with arguments '[typemap.tsv]'
それを機能させるために何を変更する必要があるか考えていますか?