Hive 中的 Order by 和 Sort by 有什麼區別?

發布 教育 2024-04-17
1個回答
  1. 匿名使用者2024-01-27

    Hive基於Hadoop執行分布式程式,與普通單機程式不同的乙個特點是,最終資料會生成多個子檔案,每個reducer節點都會對分割槽進行處理,為自己的資料生成乙個結果檔案,這使得在Hadoop環境中難以對資料進行全域性排序, 如果訂單是在Hadoop上執行的

    通過全量排序,所有資料將集中在乙個 reducer 節點上再進行排序,這很可能會超過單個節點的磁碟和記憶體儲存容量,導致任務失敗。

    另一種解決方案是放棄全域性排序,轉而進行分組排序,例如不尋求最高點選詞順序,而是為每個產品線查詢最高點選詞順序。

    使用順序

    by 丟擲全域性排序。

    select

    frombaidu_click

    orderby

    clickdesc;

    使用 distribute 和 sort 進行分組排序。

    select

    frombaidu_click

    distribute

    byproduct_line

    sortby

    clickdesc;

    distribute

    bysort

    by 是替代的,分布式的

    通過設定字段作為鍵,資料將被雜湊並分發到不同的減速機機器上,然後進行排序

    BY將在同一臺減速機上對每組資料進行本地排序。

    OrderBy 是全域性排序,而 Distribute+Sort 是分組排序。

    distribute+sort 的結果按組狀態庫進行排序和全域性無序排序,輸入資料通過以下兩個步驟進行處理:

    根據鍵欄位進行雜湊處理,將同一組的資料分發到同乙個 reducer 節點;

    對每個組的內部進行排序。

    由於每組資料都是在按鍵進行雜湊處理後儲存的,並且在組內排序,因此它也可以用於兩個目的

    直接作為HBase的輸入源匯入HBase;

    分布+排序後,進行orderby階段,實現間接全域性排序;

    但即使它是第一次分發

    按,然後排序

    如果乙個組中的資料過大,就會超過reduce節點的儲存限制,永久登錄檔型別經常會出現137記憶體溢位錯誤,應避免對大資料進行排序。

相關回答
4個回答2024-04-17

1.so+形容詞副詞+that+從句,如:

this story is so interesting that i want to read it again.(這個故事太有趣了,我想再讀一遍。 ) >>>More

19個回答2024-04-17

索尼的做工和ThinkPad再差不過了。

如果你去看一下機器,就會知道thinkpad做工特別好,而且手持大氣,一眼就是高檔產品。 >>>More

24個回答2024-04-17

用簡單的方法去除它並不容易。

二氧化硫和二氧化碳一樣,是弱酸的酸酐,性質相似,而亞硫酸的酸性比碳酸鹽強,所以不能用強酸制弱酸的方法除去二氧化碳。 基本上,二氧化碳具有二氧化硫的性質。 >>>More

11個回答2024-04-17

第乙個會沉澱 Al2(SO4)3 固體。

第二個。 首先,有Al(OH)3 >>>More

13個回答2024-04-17

相同。 轉音標。

是 [t :n]。 >>>More