如何处理猪的重复代码(模块化)

JRo*_*mio 1 hadoop apache-pig

我有一个猪代码,这样做,

连接到db1,执行,连接到db2并执行相同操作

将产出结合起来产生最终产出


基本上如何处理脚本中多个位置需要相同代码的情况

Pra*_*ode 5

您可以为重复操作定义宏,并在您的猪脚本中使用这些宏,如下所示:

DEFINE macroPerformUnion() RETURNS union_data {
    union_data = -- do your stuff
}
Run Code Online (Sandbox Code Playgroud)

将上面的内容保存在名为macroPerformUnion.pig的文件中

现在要在脚本中使用你需要导入猪文件的宏

IMPORT 'macroPerformUnion.pig';
Run Code Online (Sandbox Code Playgroud)

现在你可以使用你的宏

union_data_result = macroPerformUnion();
Run Code Online (Sandbox Code Playgroud)