目錄
1.原始數據
假設原始數據如下,分別是每名學生的成績單
name coarse score
小紅 語文 88
小明 數學 85
小紅 數學 82
小明 語文 80
2.order by
order by操作會進行完全的排序,但是有個問題是因爲只有一個reducer,對於較大規模的數據是一個性能瓶頸。
select * from score_table order by score;
小明 語文 80
小紅 數學 82
小明 數學 85
小紅 語文 88
3.distribute by、sort by
sort by是針對每個reducer進行排序,但這種排序只是局部的單個reducer內的排序,不會進行全局排序。sort by可以利用多個reducer提升性能。distribute by則會將指定的行放入同一個reducer當中進行排序。
select * from score_table ditribute by name sort by name,score;
小明 語文 80
小明 數學 85
小紅 數學 82
小紅 語文 88
4.cluster by
cluster by 相當於distribute by和sort by的結合體,它會對指定的列進行排序並輸出。
select * from score_table cluster by name;
小明 數學 85
小明 語文 80
小紅 數學 82
小紅 語文 88
參考地址:https://blog.csdn.net/qq_40795214/article/details/82190827