Hive order by ,sort by ,distribute by, cluster by

Hive中对于排序给出了通用的「order by」与 非全局排序「sort by」至于其他两个函数是配合使用的。

order by与sort by的区别:

order by的使用与标准SQL相同,实现全局排序,但是缺点是由于要进行全局有序所以在reduce阶段只有一个reducer,也就意味着失去了发挥多节点并发的优势,性能较差。

sort by是在分区内排序,在reduce阶段不会只剩下一个reducer,优点是发挥集群并发计算能力,缺点是并不能全局有序,如果想要全局有序需要对各reduce的分区进行整体排序。

distribute by与cluster by:

distribute by配合sort by使用,前者决定数据被分发到哪个reducer然后被sort

cluster by是完成distribute by与sort by的结合功能。举例:

// 按grade分区,分区内按score排序
select name,grade,score from t distribute by grade sort by score

// 按grade分区,并排序
select name,grade,score from t cluster by grade
等价于
select name,grade,score from t distribute by grade sort by grade

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值