044 HIVE中的几种排序

1、order by:全局排序

  select * from emp order by sal;

  对于一个reduce才有用。



2、sort by:对于每个reduce进行排序
  set mapreduce.job.reduces=3;

  这里设置了reduce为3。

  

  原本的结果放在控制台上,看的效果不是太清楚,所以将hive的结果到出到本文件。
  insert overwrite local directory '/opt/datas/emp_sort'  row format delimited fields terminated by ' ' select * from emp sort by sal;

  

  结果:

  

3、distribute by :底层就是mapreduce 的分区,一般与sort by连用

  先按照deptno进行分区,然后sort by每个reduce。
  insert overwrite local directory '/opt/datas/emp_dis' row format delimited fields terminated by ' ' select * from emp distribute by deptno sort by sal;

  

4、cluster by:等价于distribute by 与sort by的字段相同时

  分区与排序都是一个字段,可以使用这个。

  应该说,这个是上面的一种特殊情况,我感觉可能会用的少一些。

  insert overwrite local directory '/opt/datas/emp_cls'  row format delimited fields terminated by ' '  select * from emp cluster by sal;

  

原文地址:https://www.cnblogs.com/juncaoit/p/6028409.html