我有一个这样的数据集。
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/