【发布时间】:2016-07-06 23:34:15
【问题描述】:
UDF 的新手。借了另一篇文章作为模板,但我认为的原因不一样
ERROR 1070: Could not resolve myudfs.UPPER using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.]
脚本
register /home/tad/pig/myudf.jar;
quantiles = LOAD '/user/tad/quantiles' using PigStorage('\t','-schema');
--just one line of data
a = foreach quantiles generate 'a';
b = foreach a generate myudfs.UPPER($0);
功能
package myudfs;
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
public class UPPER extends EvalFunc<String>
{
public String exec(Tuple input) throws IOException {
if (input == null || input.size() == 0 || input.get(0) == null)
return null;
try{
String str = (String)input.get(0);
return str.toUpperCase();
}catch(Exception e){
throw new IOException("Caught exception processing input row ", e);
}
}
}
注册时不报错,说明pig发现jar文件没问题。
从咕噜声中逃跑
罐子的结构
META-INF
myudf
+--UPPER.java
+--IndexOfBig.java
+--IndexOfBig.class
+--pig.jar
+--UPPER.class
【问题讨论】:
标签: java apache-pig