大数据学习(二十二)hive中sort bycluster byorder by的区别
Posted 阿齐(努力打工版)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习(二十二)hive中sort bycluster byorder by的区别相关的知识,希望对你有一定的参考价值。
1.order by
对查询结果集执行一个全局排序,只要使用order by就会有一个所有的数据都通过一个reducer进行处理的过程。
2.sort by
会在每个reducer中对数据进行排序,执行一个局部排序过程,保证每个reducer的输出数据都有序的(并非全局有序)
3.distribute by
distribute by是控制在map端如何拆分数据给reduce端的。hive会根据distribute by后面列,对应reduce的个数进行分发,默认是采用hash算法。distribute by常常和sort by一起组合使用
(此处后续会增加实例)
4.cluster by
当distribute by和sort by后面的字段相同时,可以使用cluster by进行简化。功能是等价的;但是只能使用升序排序,不能指定排序规则为asc或者desc。
注:Distribute by和sort by的使用场景
1.Map输出的文件大小不均。
2.Reduce输出文件大小不均。
3.小文件过多。
4.文件超大。
以上是关于大数据学习(二十二)hive中sort bycluster byorder by的区别的主要内容,如果未能解决你的问题,请参考以下文章
打怪升级之小白的大数据之旅(六十二)<Hive旅程第三站:Hive数据类型>