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