在 Pig 中投影分组元组
Posted
技术标签:
【中文标题】在 Pig 中投影分组元组【英文标题】:Projecting Grouped Tuples in Pig 【发布时间】:2012-05-29 23:39:49 【问题描述】:我有一个 (t,a,b) 形式的元组集合,我想在 Pig 中按 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)
问题是:我如何才能产生这个结果?我习惯于看到聚合操作遵循分组操作的示例。我不太清楚如何过滤元组并将它们放入袋子中。感谢您的帮助!
【问题讨论】:
【参考方案1】:原来我正在寻找的是 Pig 中嵌套投影的语法。
如果一个人有 (t,a,b) 形式的元组,并且想在 group by 之后删除 b,则这样做。
grouped = GROUP tups BY b;
result = FOREACH grouped GENERATE tup.(t,a);
请参阅 PigLatin 页面上的“嵌套投影”部分。 http://wiki.apache.org/pig/PigLatin
【讨论】:
以上是关于在 Pig 中投影分组元组的主要内容,如果未能解决你的问题,请参考以下文章
Pig 10.0 - 将元组分组并在 foreach 中合并包