我有一个形式(t,a,b)的元组集合,我想在猪群中按b分组。分组后,我想从每个组中的元组中过滤掉b,并为每个组生成一包过滤后的元组。
举个例子,假设我们有 (1,2,1) (2,0,1) (3,4,2) (4,1,2) (5,2,3)
猪脚本会产生 {(1,2),(2,0)} {(3,4),(4,1)} {(5,2)}
问题是:我该如何产生这个结果?我习惯于看到聚合操作遵循一组操作的示例。我不太清楚如何过滤元组并将它们放回袋中。谢谢你的帮助!
答案 0 :(得分:8)
原来我要找的是Pig中嵌套投影的语法。
如果一个元组具有形式(t,a,b)的元组,并希望在分组后删除b,则以这种方式完成。
grouped = GROUP tups BY b;
result = FOREACH grouped GENERATE tup.(t,a);
请参阅PigLatin页面上的“嵌套投影”部分。 http://wiki.apache.org/pig/PigLatin