hive Sort By/Order By/Cluster By/Distribute By

來源:互聯網
上載者:User

Order by

colOrder: ( ASC | DESC )orderBy: ORDER BY colName colOrder? (',' colName colOrder?)*query: SELECT expression (',' expression)* FROM src orderBy

order by 會對輸入做全域排序,因此只有一個reducer(多個reducer無法保證全域有序)
只有一個reducer,會導致當輸入規模較大時,需要較長的計算時間。
在hive.mapred.mode=strict模式下,強制必須添加limit限制,這麼做的目的是減少reducer資料規模,例如,當限制limit 100時, 如果map的個數為50, 則reducer的輸入規模為100*50

Sort by

colOrder: ( ASC | DESC )sortBy: SORT BY colName colOrder? (',' colName colOrder?)*query: SELECT expression (',' expression)* FROM src sort By

sort by不是全域排序,其在資料進入reducer前完成排序。
因此,如果用sort by進行排序,並且設定mapred.reduce.tasks>1, 則sort by只保證每個reducer的輸出有序,不保證全域有序。

Distribute by
根據distribute by指定的內容將資料分到同一個reducer

Cluster by
除了具有Distribute by的功能外,還會對該欄位進行排序。因此,常常認為cluster by = distribute by + sort by

reference:
languagemanual-sortby
Hive排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.