排序

全局排序:order by

一个 reducer ,ASC :升序(默认), DESC :降序 

部分排序: sort by

分区内有序,但是无法获知分区依据。常与distribute by 使用

步骤:
设置reduce个数:

hive (default)> set mapreduce.job.reduces=3;

查看reduce个数

hive (default)> set mapreduce.job.reduces;

执行SQL语句

hive (default)> select * from emp sort by empno desc;

查询结果导入到文件中

hive (default)> insert overwrite local directory '/opt/module/datas/sortby-result'
select * from emp sort by deptno desc;

分区排序:
类似MR中的partition,进行分区,需结合sort by 使用,先分区,后排序

hive (default)> set mapreduce.job.reduces=3;
hive (default)> insert overwrite local directory '/opt/module/datas/distribute-result' select * from emp distribute by deptno sort by empno desc;

Cluster by:
注:当distribute by和sorts by字段相同时,可以使用cluster by方式。
cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。
以下两种写法等价

hive (default)> select * from emp cluster by deptno;
hive (default)> select * from emp distribute by deptno sort by deptno;
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐