我对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?
谢谢你,祝你有个美好的一天......
答案 0 :(得分:4)
Pig有两个命令,RUN
和EXEC
。它们的不同之处在于RUN
将执行Pig脚本并使其别名和属性可用于后续使用,而EXEC
只是执行脚本并返回调用环境未更改(但在任何新文件上创建) HDFS可用。)
例如,我有一组宏,jar和属性,我想在我编写的每个脚本的开头设置它们。我不是每次都输入它们,而是将它放入Pig脚本中并在脚本的开头调用RUN /my/script.pig
。
答案 1 :(得分:0)
您可以使用宏来执行此类操作: http://pig.apache.org/docs/r0.11.1/cont.html#macros