hive中order by 和sort by与distribute by

hive order by 与SQL中的order by一致,都是做全局排序。order by的排序是做全局排序,只会有一个reducer进行排序,多个reducer无法保证全局有序,这样导致大数据量时,reducer排序压力大,运算慢,可能造成内存溢出危险。

sort by 与order by的不同之处在于sort by限定在单机范围内进行排序。且数据能够被分发到多个reducer中处理,现假设有2个reducer处理排序,排序下面的数据 12 13 12 14,12和 13分配给reducer 1,12和14分配给reducer2 则,order by 和sort by的结果会是 12 12 13 14,12 13 12 14。这样12这个值就变得有点多余,这时候与distribute by结合的话,将会将所有12的值发配到一台机器上排序,结果就会变为 12 12 13 14。在不追求全局排序的情况下,使用sort by和distribute by可以有效降低单机排序压力,使得排序效率提高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值