我有以下关系:
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)
从A中生成A_distinct会有什么简洁明了的方法? 感谢。
答案 0 :(得分:-1)
一个解决方案可能是生成记录中所有值的哈希值,然后在其上运行一个不同的值。
伪代码看起来像这样 -
A = FOREACH A GENERATE A.$0,...A.$5, yourhashfunction(A.$0,...A.$5) as hash;
A = GROUP A by hash;
要检索每个分组BAG中的第一个元组,您可以参考here。