在hadoop上用udf运行猪脚本

时间:2012-11-18 10:45:20

标签: hadoop apache-pig hadoop-streaming

我是hadoop和猪的新手。我想知道如何运行内部调用UDF方法的pig脚本?问题是我没有看到像Pig UDF手册网站上提到的声明“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文件添加到命令行?

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果脚本中没有REGISTER语句(并且脚本有效),则它不会调用任何除了Pig builtin functions之外的任何UDF。如果您想使用UDF,则需要REGISTER语句。如果没有调用UDF,则REGISTER是不必要的,这可能是您在脚本中没有看到它的原因。

Here是编写UDF的好参考。在编写之后,您需要将其编译为jar文件,确保还包括它依赖的任何类(例如EvalFunc)。这是你将REGISTER

的罐子