2018-10-21
阅读量:
1188
Hive中orderby和sortby排序的区别
Hive基于HADOOP来执行分布式程序的,和普通单机程序不同的一个特点就是最终的数据会产生多个子文件,每个reducer节点都会处理partition给自己的那份数据产生结果文件,这导致了在HADOOP环境下很难对数据进行全局排序,如果在HADOOP上进行order by全排序,会导致所有的数据集中在一台reducer节点上,然后进行排序,这样很可能会超过单个节点的磁盘和内存存储能力导致任务失败。
一种替代的方案则是放弃全局有序,而是分组有序,比如不求全百度最高的点击词排序,而是求每种产品线的最高点击词排序。
使用order by会引发全局排序:
select * from baidu_click order by click desc;
使用distribute和sort进行分组排序:
select * from baidu_click distribute by product_line sort by click desc;
0.0000
0
4
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
1条评论
0条评论
0条评论