我有一个这样的数据集。

cus_ID  BRAND AMOUNT
1       5       10
2       4       20
3       5       15
1       5       20
1       4       30
2       3       15

我想使用PIG查找前5个品牌中的前5个品牌和前10个客户ID。

最佳答案

对于您的第一个目标(找到前5个品牌),请继续(未测试代码):

mydata = LOAD ... <load your data from your file or other source>
grouped = GROUP mydata BY brand;
flattened = FOREACH grouped GENERATE
    FLATTEN(group) AS brand,
    SUM(mydata.amount) AS amount_per_brand;
topfivebrand = LIMIT (ORDER flattened by amount_per_brand DESC) 5;
dump topfivebrand;

那应该让您开始! :)

关于hadoop - 基于分组的 pig 脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37540254/

10-16 05:26