前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pig脚本求和排序取TOP

pig脚本求和排序取TOP

作者头像
休辞醉倒
发布2019-07-31 17:18:34
8340
发布2019-07-31 17:18:34
举报
文章被收录于专栏:休辞醉倒休辞醉倒

有一需求,在HDFS数据上分组聚合累加一列的值,汇总后排序取TOP,pig脚本思路如下:

假设有如下数据在HDFS上: cat city.txt:  wh  500  bj  600  wh  100  sh  400  wh  200  bj  100  sh  200  bj  300  sh  900

第一列是城市缩写,第二列是城市某值统计,现需要将城市列合并,并将第二列在城市聚合的基础上做累加。 操作如下:

代码语言:javascript
复制
a = load '/data/city.txt'  using PigStorage(' ') as (city:chararray, value:int);
b = group a by city;
c = foreach b generate group , SUM(a.value);
dump c;

显示如下:

代码语言:javascript
复制
(bj,1000.0)
(sh,1500.0)
(wh,800.0)

做排序,取TOP:

代码语言:javascript
复制
d = limit (order c by $1 desc) 2;
dump d;

显示:

代码语言:javascript
复制
(sh,1500.0)
(bj,1000.0)

emmmmmmm大概就这样吧,不知道有没有优化手段。

参考资料: https://blog.csdn.net/wisgood/article/details/17230691 http://www.mamicode.com/info-detail-1020467.html 《Hadoop权威指南》P442

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档