gpt4 book ai didi

hadoop - apache Pig 试图在每个组中获得最大计数

转载 作者:可可西里 更新时间:2023-11-01 15:05:38 24 4
gpt4 key购买 nike

我有 pig 格式的数据

{(group, productId, count)}

现在我想获得每个组中的最大计数,输出可能如下所示

{(group, productId, maxCount)}。这是示例输入数据

  • (南美,prod1, 45),(南美,prod2,36),(拉丁美洲,prod1,48),(拉丁美洲,prod5,35)

这里是这个输入的输出看起来像

  1. (南美,prod1, 45)
  2. (北美,prod2,36)
  3. (拉丁美洲,prod1, 48)

谁能帮我解决这个问题。

最佳答案

根据您的示例输入数据,这应该可以解决问题:

data = load 'sf.csv' using PigStorage(',') as (country:chararray, product:chararray, c:int);
g = group data by country;
result = foreach g {
prods = order data by c desc;
top_prods = limit prods 1;
generate flatten(top_prods);
}
dump result;

这按第一列对输入进行分组,然后在嵌套的 foreach 中按计数对每组产品进行排序,然后取第一个(最高计数)。

输出:

(latin america,prod1,48)
(south America,prod1,45)

关于hadoop - apache Pig 试图在每个组中获得最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294411/

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