要通過你在你的pigscript以下參數:
UDF(document, '$param1', '$param2', '$param3')
編輯:不知道如果這些PARAMS必須wrappedin '' 或不
,而在你的UDF你這樣做:
public class UDF extends EvalFunc<Boolean> {
public Boolean exec(Tuple input) throws IOException {
if (input == null || input.size() == 0)
return false;
FileSystem fs = FileSystem.get(UDFContext.getUDFContext().getJobConf());
String var1 = input.get(1).toString();
InputStream var1In = fs.open(new Path(var1));
String var2 = input.get(2).toString();
InputStream var2In = fs.open(new Path(var2));
String var3 = input.get(3).toString();
InputStream var3In = fs.open(new Path(var3));
return doyourthing(input.get(0).toString());
}
}
例如
是的弗雷德。但是,我如何從PigScript方傳遞參數? – emkay
我不知道這是不是你想要做的事情,但是你可以創建一個新的Tuple,主鍵作爲第一個字段,你實際想要傳遞給你的UDF的數據作爲剩餘的字段:'FOREACH tupleForUdf GENERATE primarykey,*;' – Frederic