【问题标题】:Get distinct set of tuples in Pig在 Pig 中获取不同的元组集
【发布时间】:2016-11-10 02:36:58
【问题描述】:

我有以下关系:

DUMP A;
(Rick, m, 22, Mary, f, 23)
(Helen, f, 35, Mark, m, 37)
(Mary, f, 23, Rick, m, 22)

sixplet 元组基本上是两个三元组,你可以看到第一个元组和最后一个元组包含相同的信息,只是翻转过来的。我需要消除这些重复。所以最终的结果应该是这样的:

DUMP A_distinct;
(Rick, m, 22, Mary, f, 23)
(Helen, f, 35, Mark, m, 37)

从 A 中生成 A_distinct 的简洁方法是什么? 谢谢。

【问题讨论】:

  • 约翰从哪里来?输出不应该是 Rick m 22 吗?发布你的整个 pig 脚本和文件中的示例数据
  • @inquisitive_mind:是的,感谢您的关注,我已经解决了这个问题。
  • 你怎么知道第一排的rick和第三排的rick是同一个?
  • @Andrew :您可以假设三元组唯一地定义了一个用户。所以是的,它是同一个瑞克。

标签: hadoop apache-pig schema


【解决方案1】:

一种解决方案可以是生成记录中所有值的哈希值,然后在其上运行不同的值。

伪代码看起来像这样 -

A = FOREACH A GENERATE A.$0,...A.$5, yourhashfunction(A.$0,...A.$5) as hash;
A = GROUP A by hash;

要检索每个分组 BAG 中的第一个元组,您可以参考 here

【讨论】:

  • 有人能解释为什么 -1 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
相关资源
最近更新 更多