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

How to handle repeating code in pig ( modularization )

我有一个 pig 代码可以做到这一点,

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

合并输出以产生最终输出


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

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

DEFINE macroPerformUnion() RETURNS union_data {
    union_data = -- do your stuff
}

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

现在要在脚本中使用您的宏,您需要导入 pig 文件

IMPORT 'macroPerformUnion.pig';

现在您可以使用

调用您的宏
union_data_result = macroPerformUnion();