CLUSTER BY子句
適用於:磚的SQL磚運行時
根據輸入表達式重新劃分數據,然後對每個分區中的數據進行排序。這在語義上等同於執行分發的接著是排序.此子句僅確保結果行在每個分區內排序,而不保證輸出的總順序。
例子
>創建臨時視圖人(的名字,年齡)作為值(“禪回族”,25),(“阿尼爾B”,18),(照年代”,16),(“邁克”,25),(“約翰一”,18),(“傑克N”,16);—將shuffle分區的數量減少到2,以說明' CLUSTER BY '的行為。分區數量越少,就越容易看到集群和排序行為。>集火花.sql.洗牌.分區=2;——選擇沒有排序的行。請注意,沒有任何排序指令,結果的值是不確定的。這裏包含它是為了顯示行為的差異——不使用' CLUSTER BY '時和使用' CLUSTER BY '時的下麵的查詢生成行——年齡列沒有排序。>選擇年齡,的名字從人;16照年代25禪回族16傑克N25邁克一個18約翰一個18阿尼爾B——生成按年齡聚集的行。年齡相同的人聚集在一起。-在下麵的查詢中,年齡為18歲和25歲的人在第一個分區和16歲的人在第二個分區。行是基於排序的——每個分區的年齡。>選擇年齡,的名字從人集群通過年齡;18約翰一個18阿尼爾B25禪回族25邁克一個16照年代16傑克N