我有一个形式(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)}
问题是:我该如何产生这个结果?我习惯于看到聚合操作遵循一组操作的示例.我不太清楚如何过滤元组并将它们放回袋中.谢谢你的协助!
原来我要找的是Pig中嵌套投影的语法.
如果一个元组具有形式(t,a,b)的元组并且想要在组之后删除b,则以这种方式完成.
grouped = GROUP tups BY b;
result = FOREACH grouped GENERATE tup.(t,a);
Run Code Online (Sandbox Code Playgroud)
请参阅PigLatin页面上的"嵌套投影"部分.http://wiki.apache.org/pig/PigLatin