目录
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
https://www.docs4dev.com/docs/en/apache-hive/3.1.1/reference/LanguageManual_SortBy.html