从其他Pig脚本调用Pig Latin脚本

时间:2013-12-17 13:52:41

标签: hadoop user-defined-functions apache-pig

我对PIG拉丁语有疑问。有没有办法如何从另一个猪脚本中调用一些猪脚本?

我知道可以运行用户定义的函数(UDF),如:

REGISTER myudfs.jar;
A = LOAD 'student_data' AS (name: chararray, age: int, gpa: float);
B = FOREACH A GENERATE myudfs.UPPER(name);
DUMP B;

但它不适用于猪脚本。我们正在计算一些不同的客户参数,并且为了可读性和重复使用,加载一些猪片段会很棒,例如:

REGISTER somepigscript.pig;
LOAD somepigscript.pig;

您知道是否有这样的功能?还是任何UDF?

谢谢你,祝你有个美好的一天......

2 个答案:

答案 0 :(得分:4)

Pig有两个命令,RUNEXEC。它们的不同之处在于RUN将执行Pig脚本并使其别名和属性可用于后续使用,而EXEC只是执行脚本并返回调用环境未更改(但在任何新文件上创建) HDFS可用。)

例如,我有一组宏,jar和属性,我想在我编写的每个脚本的开头设置它们。我不是每次都输入它们,而是将它放入Pig脚本中并在脚本的开头调用RUN /my/script.pig

答案 1 :(得分:0)

您可以使用宏来执行此类操作: http://pig.apache.org/docs/r0.11.1/cont.html#macros

相关问题