我必须在一个列表中循环30多个变量 [var1,var2, ... , var30]
对于每个变量,我使用一些pig group by
声明,如
grouped = GROUP data by var1;
data_var1 = FOREACH grouped{
GENERATE group as mygroup,
COUNT(data) as count;
};
有没有办法在变量列表上循环,或者我被迫在代码中手动重复上述代码30次?
谢谢!
1条答案
按热度按时间btqmn9zl1#
我想你要找的是Pig
为您的30个变量创建一个关系,并通过foreach对它们进行迭代,然后调用一个宏,该宏将获得2个参数:您的数据关系和您想要分组的var。只需检查链接中的示例宏与您希望执行的操作非常相似。
更新代码(&C)
下面是您可以使用的宏:
使用宏:
我仍在考虑如何遍历要分组的字段。我最初的建议是通过一个关系foreach什么包含的文件名不正确(为此创建一个自定义项总是有效的。)让我想想。但这个宏的工作原理是,如果您按所有要分组的文件名调用。