<7> hive group by,order by

本文深入探讨Hive SQL的高级用法,包括group by、having子句的使用规范,reduce操作的影响,数据倾斜的优化策略,以及order by实现全局排序的机制。通过实例讲解,帮助读者理解如何有效运用这些特性提升查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

group by ...having
1.select 后面非聚合列必须出现在group by 中
2.除了普通的列就是一些聚合操作
3.group by 后面可以跟表达式,比如substr(col)
4.group by 使用了reduce操作,受限于reduce数量,设置reduce参数mapred.reduce.task改变reduce数量(hive-0.13)
set mapreduce.job.reduces (2.1.1修改reduce数量改为这个)

5.输出文件个数于reduce个数相同,文件大小与reduce处理的数据量有关
6.数据倾斜优化参数 hive.groupby.skewindata
7.网络负载问题
select id,count(id) from a5 group by id having >2;
order by
1.后面可以有多列进行排序,默认按字典排序
2.是一个全局排序
3.order by 需要reduce操作,且只有一个reduce,与配置无关
create external table a5(id int,name string,age int) row format delimited fields terminated by ',' stored as textfile;
1,tom
2,jack
3,zz
select * from a5 order by id asc,name desc;
hive.mapred.mode=strict(严格模式下order by 必须加limit)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值