gpt4 book ai didi

hadoop - 检索 PIG 中出现频率最高的值

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

如果我有以下数据集:

c1   c2
--- ---
1 5
1 5
1 6
2 9
2 9
3 1
3 2

我想为第一列 (c1) 中的每个值返回第二列 (c2) 中出现频率最高的值。所以我希望返回的数据集看起来像下面这样,因为对于 c1=1,值“5”出现两次,值“6”只出现一次,对于 c1=2,值“9”出现两次,没有出现其他值:

1    5
2 9
3 1

我遇到问题的情况是出现次数相等(在本例中 c1=3。)在情况 (c1=3) 中 c2 中出现次数相等的情况下,我只想返回第一次出现。

任何想法都会有所帮助。

最佳答案

假设你的 c1 和 c2 在 A 上:

B = GROUP A BY (c1, c2)
C = FOREACH B GENERATE GROUP, COUNT(A) as num;

D = GROUP C BY GROUP.c1
E = FOREACH D {
SA = ORDER C BY num DESC;
SB = LIMIT SA 1;
GENERATE FLATTEN(SB.group);
}

应该可以解决你的问题。 (不过我是用记事本写的,你应该通过描述/说明检查是否需要展平)

关于hadoop - 检索 PIG 中出现频率最高的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490567/

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