(1)order by
对全局数据的排序,只有一个reduce
select * from emp order by id desc;
(2)sort by
对每个reduce内部数据进行排序,对于全局数据结果来说不是排序的。
//设置reduce的个数
set mapreduce.job.reduces=3;
select * from emp sort by id desc;
(3)distribute by
指定分区,这里的分区指的时mapreduce过程中的分区,通常结合sort by进行使用。
insert overwrite local directory '/path' select * from emp distribute by depmo sort by empno asc;
这里的分区会将相同的depno记录放在一个分区中。
注意:distribute by必须在sort by之前。
(4)cluster by
属于distribute by和sort by的组合,也就是当distribute by和sort by字段相同时候使用这个进行代替。