1.sort by
sort by 只有局部排序,保证每一个reduce 都是有序的,但是所有的reduce并不是有序的,(如果只有一个reduce那么就是有序的)
2.order by
order by 全局有序的,同时也只有一个reduce(有时数据量太大不会出结果,可以使用limit来限制条数)
3.distribute by
distribute by 列名,根据这个列名,送入同一个reduce里面,必须和sort by 连在一起使用,sort by 列名,根据这个列名再一次的在同一个reduce里面进行排序。
表名:my_test
id | year(年份) | temp(温度) |
1 | 1997 | 18 |
2 | 1997 | 21 |
3 | 1998 | 188 |
4 | 1998 | 199 |
select * from my_test distribute by year sort by temp desc
解释:将1997年的所有温度送入同一个reduce,同时按照降序排序;将1998年的所有温度送入一个reduce里面,按照同一个年份进行排序;