hive 各种by相关的介绍

本文详细介绍了 Hive 中的 order by、sort by、distribute by、cluster by 和 partition by 的用法和区别。order by 实现全局排序,但会增加额外的 reduce 任务;sort by 是局部排序,每个 reduce 输出有序;distribute by 控制数据在 reduce 间的分布,常与 sort by 结合使用;cluster by 结合了 distribute by 和 sort by 的功能;而 partition by 用于分组分析,返回分组内的所有数据。
摘要由CSDN通过智能技术生成

hive 各种by相关的介绍

1、order by

hive中的order by和传统sql中的order by 一样,会对数据做全局排序,加上排序,会新启动一个jod进行排序,会把所有数据放到同一个reduce中进行处理,不管数据多少,
不管文件多少,都启用一个reduce进行处理。
注意:
(1):order by后面可以有多列进行排序,默认按字典排序
(2):order by为全局排序
(3):order by需要reduce操作,且只有一个reduce,无法配置(因为多个reduce无法完成全局排序)。
order by操作会受到如下属性的制约
1、set hive.mapred.mode=nonstrict;
2、set hive.mapred.mode=strict;
注:如果在strict模式下使用order by语句,那么必须要在语句上加上limit关键字,因为执行order by的时候只能启动单个reduce,如果排序的结果集过大,那么执行时间会非常漫长
如:原始数据为
id money name
2 15 d
2 13 b
4 13 g
1 14 c
1 12 a
3 11 h
3 14 f
select id,sum(money) from t group by id 这条语句只用一个job就ok,
select id,sum(money) from t gr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值