我是hadoop pig的新手,我有一个如下的数据集:
region_id region participation score
1 SSA YES 10
1 SSA NO 22
2 MONTPELIER YES 15
....
我想计算每个地区的得分总和。我要找的最终显示是:
区域-分数,例如:
SSA - 32
我加载了我的数据:
data = load '/user/cloudera/datapi/pigdata.csv' using PigStorage (',') AS
(id:int, region:chararray, participation:chararray, score:int);
然后按区域将数据分组:
split_region = GROUP data by region;
最后:
RES= foreach split_region GENERATE SUM(data.score), data.region;
res变量包含每个区域的得分总和,但它显示该区域的所有事件,如下所示:
(32 , {SSA,SSA})
要显示的缺少命令/指令是什么 (32, SSA)
相反呢?
2条答案
按热度按时间h43kikqp1#
组运算符用于将具有相似密钥的所有记录放入同一个包中。这有助于我们对列执行聚合。
jbose2ul2#
使用
group
而不是data.region
```RES = foreach split_region GENERATE SUM(data.score), group;