hive-排序函数总结

一、order by
基于整个表的全表扫描,所以只会有一个分区产生,即只有一个reduce任务,
支持升序和降序 asc|desc
二、sort by
可以通过设置reduce的个数,来对reduce任务的内部排序,但是每个分区里面数据通过随机算法分配的,不能人为设置,所以一般都会和distribu by进行联合使用,支持升序降序
设置reduce个数

set mapreduce.job.reduces=i;
set mapreduce.job.reduces //可以查看当前的分配情况

三、 distribute by
distribute by 可以指定的列进行分区,可以说是排序,但也不算,因为distribute by是按照hash来进行的,举例:

  select * from test3 distribute by num ;
  //将会按照num%reduces 进行分区,hash的结果相同,分区就一致。
  select * from test distribute by num sort by sno desc;
  //按照降序对sno排序

四、cluster by
cluster by 相当于 distribute by num sort by sno ,进行排序,唯一的确定就是只能按照默认的升序排序,不能进行降序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值