无论顺序如何,都需要从 PIG 中的关系中提取不同的元组,即 (1,2)=(2,1)

Need to pull distinct tuples from a relation in PIG regardless of order i.e. (1,2)=(2,1)

我对使用 Pig 和 Hadoop 还很陌生,所以如果这是非常基础的,请原谅我。我有一个关系,其中包含用户和关注者列表(如 Twitter),格式为 (userA,userB),这意味着 userB 关注 userA。我的任务(是的,这是家庭作业)是找到互相关注的人。我已经这样做了,因为我在关系中有 (userA,userB) 和 (userB,userA),所以我的元组数量是我需要的两倍。我最终得到两个元组中的哪一个并不重要,我只需要消除其中一个。 DISTINCT 关键字对我没有任何好处,因为顺序颠倒了

在没有看到您的代码的情况下,您似乎可以尝试在去重之前对元组的字段进行排序,如下所示:

X = FOREACH A GENERATE (f1 < f2 ? f1 : f2), (f1 < f2 ? f2 : f1);
Y = DISTINCT X;