在 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 中合并包

将项目添加到 Django 中的元组元组后是不是可以重新启动服务器?

Python按整数递归排列并返回一组元组

元组的详细操作

python3元组

Python数据类型 ——— 元组