gpt4 book ai didi

hadoop - pig 如何过滤不同的夫妇(对)

转载 作者:可可西里 更新时间:2023-11-01 14:54:09 26 4
gpt4 key购买 nike

我是 Pig 的新手。我有一个 Pig 脚本,它在两个元素之间生成制表符分隔的对。每行一对,例如:

John   Paul
Tom Nik
Mark Bill
Tom Nik
Paul John

我需要过滤掉重复的组合。如果我使用 DISTINCT,我会过滤掉双“Tom Nik”条目。结果是:

John   Paul
Tom Nik
Mark Bill
Paul John

这种方法的问题在于,我只剩下“John Paul”和“Paul John”,就我的目的而言,它们应该被视为相同(相同的组合)。有没有办法删除排列组合?

最佳答案

我不确定字符串比较在 Pig 中是如何实现的,但尝试类似的东西可能是值得的:

-- A is your input
B = FOREACH A GENERATE FLATTEN(($0 < $1 ? ($0, $1) : ($1, $0))) ;
C = DISTINCT B ;

通过对名称进行排序,使“较小的”始终首先出现 John PaulPaul John 现在应该处于相同的顺序,从而使 DISTINCT 消除一个。

但是,这种方法完全取决于字符串比较的实现方式。例如,如果它比较长度,则 John Paul 案例将不会被正确过滤。

关于hadoop - pig 如何过滤不同的夫妇(对),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22812857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com