我是hadoop和 pig 的新手。我想知道如何运行内部调用UDF方法的Pig脚本吗?问题是我看不到Pig UDF Manual网站上提到的语句“register blah.jar”:
register myudfs.jar;
A = load 'student_data' as (name: chararray, age: int, gpa: float);
B = foreach A generate flatten(myudfs.Swap(name, age)), gpa;
C = foreach B generate $2;
D = limit B 20;
dump D;
但是我确实看到一个包含“blah.jar”的“jar”目录。我的同事已经离开了,所以我想知道诀窍是什么?也许我可以将jar文件添加到命令行?
非常感谢!
最佳答案
如果脚本中没有REGISTER
语句(并且脚本有效),则除了Pig的builtin functions中的任何一个之外,它都不会调用任何UDF。如果您想使用UDF,则需要REGISTER
语句。如果未调用UDF,则不需要REGISTER
,这可能就是为什么您没有在脚本中看到它的原因。
Here是编写UDF的良好引用。编写完之后,您需要将其编译为jar文件,并确保还包括其依赖的任何类(例如EvalFunc)。这是您将使用REGISTER
的jar。
关于hadoop - 在hadoop上使用udf运行Pig脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439413/