私はPigとOozieを初めて使用するので、これは初心者の質問かもしれませんが、運が悪いので、どこでも答えを探しました... PigでUDFを実行しようとしています.UDFはevalのJARですオーバーロードされたメソッド ( http://wiki.apache.org/pig/UDFManualから取得):
package myudfs;
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.util.WrappedIOException;
public class UPPER extends EvalFunc<String>
{
public String exec(Tuple input) throws IOException {
if (input == null || input.size() == 0)
return null;
try {
String str = (String)input.get(0);
return str.toUpperCase();
} catch(Exception e) {
throw e;
}
}
}
Pig スクリプトは次のとおりです。
REGISTER myudfs.jar;
Raw = LOAD '/user/piguser/input' AS (name: chararray, age: int, gpa: int);
x = FOREACH Raw GENERATE myudfs.UPPER(name);
RMF 'output';
STORE x INTO 'output';
これをローカル (pig -f script.pig.txt) で実行すると、目的の結果が得られますが、これを Oozie ( oozie job -oozie http://localhost:11000/oozie -config job.properties -run
) で実行すると、次のエラーが表示されます:
エラー 101: ローカル ファイル 'myudfs.jar' は実行します存在しない。
何をするように提案しますか?
前もって感謝します :)