Hadoop 在Pig中获得不同的元组集

Hadoop 在Pig中获得不同的元组集,hadoop,apache-pig,schema,Hadoop,Apache Pig,Schema,我有以下关系: DUMP A; (Rick, m, 22, Mary, f, 23) (Helen, f, 35, Mark, m, 37) (Mary, f, 23, Rick, m, 22) 六元组基本上是两个三元组,您可以看到第一个元组和最后一个元组包含相同的信息,这些信息刚刚翻转过来。我需要消除这些重复。因此最终结果如下所示: DUMP A_distinct; (Rick, m, 22, Mary, f, 23) (Helen, f, 35, Mark, m, 37) 用什么简洁的方

我有以下关系:

DUMP A;
(Rick, m, 22, Mary, f, 23)
(Helen, f, 35, Mark, m, 37)
(Mary, f, 23, Rick, m, 22)
六元组基本上是两个三元组,您可以看到第一个元组和最后一个元组包含相同的信息,这些信息刚刚翻转过来。我需要消除这些重复。因此最终结果如下所示:

DUMP A_distinct;
(Rick, m, 22, Mary, f, 23)
(Helen, f, 35, Mark, m, 37)
用什么简洁的方法从一个?
谢谢。

一种解决方案是生成记录中所有值的散列,然后在其上运行distinct

伪代码如下所示-

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

检索每个分组包中您可以引用的第一个元组。

John来自哪里?输出不应该是Rick m 22吗?发布整个pig脚本和来自file@inquisitive_mind:是的,谢谢你的回答,我已经解决了这个问题。你怎么知道第一行的瑞克和第三行的瑞克是同一个瑞克?@安德鲁:你可以假设这个三元组唯一地定义了一个用户。是的,是同一个瑞克。有人能解释为什么-1吗?