hive表查询——排序


1.全局排序 order by

使用orderby对全局进行排序的前提是只能有一个reduce。order  by ASC升序,order by DESC降序。

 

 order by 列别名:按照别名升序排序

 

 order by 列名1 列名2:先按照列名1的升序排序,如果相等再按照列名2进行排序

 

 2.局部排序 sort by

sort by会对每个mapreduce内部进行排序,对全局结果来说并不完全有序。

使用sort by排序的过程:

2.1设置reduce的个数

2.2使用sort by查询语句进行排序

2.3将查询结果导入文件中

 

 

 

 

 3.分区排序 distribute by

distribute by将数据进行分区,结合sort by使用对不同分区进行排序

在使用这个语法前要先设置分区的个数同2.1

 先按照s_id进行分区,再按照s_score进行排序,最后将查询的结果加载到本地

结果:

 

 在这个文件中记录的都是id为04的数据,可见distribute by的作用,第三栏是成绩,按照升序排列,可见sort by的作用。

 4.cluster by

当distribute by的字段与sort by字段相同时可以使用cluster by,但是cluster by的排序只能是倒序,不能指定ASC或者DESC

以下两种写法等价

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM