栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Hive的排序语句

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hive的排序语句

Hive的全局排序(Order By)

1、在Hive中使用Order By的话,reduce的个数始终默认为1,无法通过

set mapreduce.job.reduces=num;

来设置reduce的个数,并且排序速度较慢。

Hive的分区排序

1、当有大规模数据集,且不强制要求全局排序,以及数据分区排序规则时,可以只使用Sort By关键词。
通过设置reduce的个数为num:

set mapreduce.job.reduces=num;

再通过Sort By,在每个reducer内产生一个排序文件,对部门编号降序,相对全局排序来看,Sort By是随机的。

select * from emp sort by deptId desc;

2、当为进行后续的聚集操作,需要控制某个特定行应该到哪个reducer时,通过Distribute By和Sort By结合使用,达到效果。
例如,将按照部门分区,薪资排序的情况

select * from emp distribute by deptId sort by salary desc;

Distribute By的分区规则是根据分区字段的 hash 码与 reduce 的个数进行模除后, 余数相同的分到一个区。

3、针对Distribute By和Sort By后的字段一样时,可以使用Cluster By。
例如,按照部门分区,同时按照部门排序的情况

select * from emp distribute by deptId sort by deptId;
select * from emp cluster by deptId;

注意:在使用Cluster By的语句中,不能使用desc降序排序。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/896326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号