在hadoop上使用udf运行pig脚本

lsmepo6l  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(264)

我是hadoop和pig的新手。我想知道如何运行一个内部调用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文件添加到命令行?
谢谢!

fsi0uk1n

fsi0uk1n1#

如果没有 REGISTER 语句(并且脚本是有效的),则它不会调用任何UDF,可能除了pig的任何内置函数。如果你想使用自定义项,你需要一个 REGISTER 声明。 REGISTER 如果没有调用自定义项,则没有必要,这可能就是您在现有脚本中看不到它的原因。
这是一个很好的关于编写自定义项的参考资料。编写之后,需要将其编译成jar文件,确保还包含它所依赖的任何类(如evalfunc)。这就是你要买的jar REGISTER .

相关问题