distribute by sort by
一:order by
order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。
二:sort by
sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1,则sort by只会保证每个reducer的输出有序,并不保证全局有序。sort by不同于order by,它不受hive.mapred.mode属性的影响,sort by的数据只能保证在同一个reduce中的数据可以按指定字段排序。使用sort by你可以指定执行的reduce个数(通过set mapred.reduce.tasks=n来指定),对输出的数据再执行归并排序,即可得到全部结果。
三:distribute by
distribute by是控制在map端如何拆分数据给reduce端的。hive会根据distribute by后面列,对应reduce的个数进行分发,默认是采用hash算法。sort by为每个reduce产生一个排序文件。在有些情况下,你需要控制某个特定行应该到哪个reducer,这通常是为了进行后续的聚集操作。distribute by刚好可以做这件事。因此,distribute by经常和sort by配合使用。
注:Distribute by和sort by的使用场景
1.Map输出的文件大小不均。
2.Reduce输出文件大小不均。
3.小文件过多。
4.文件超大。
四:cluster by
cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是倒叙排序,不能指定排序规则为ASC或者DESC。
distribute by sort by相关推荐
- 2.12 Hivet中order by,sort by、distribute by和cluster by
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy 一.order by 对全局数据的排序,仅仅只有一个red ...
- hive排序:distribute by 、sort by 、cluster by 、order by 区别
hive排序:distribute by .sort by .cluster by .order by 区别 1). order by 只有一个reduce负责对所有的数据进行排序,若大数据量,则需要 ...
- Sort By、Distribute By 使用说明书
本文目录 数据准备阶段 1.Order By(全局排序) 2.Sort By(每个reduce内部排序) 3.Distribute By(指定分区规则) 4.Cluster By(分区字段和排序字段相 ...
- order by、distribute by、sort by、group by、partition by
order by:全局排序 order by 会对数据进行一次全局排序,所以说,只要hive的sql中指定了order by,那么所有的数据都会到同一个reducer进行处理(不管有多少map,也不管 ...
- Hive分组 条件 分区排序 CLUSTER BY, Sort By,DISTRIBUTE BY
建表语句 create table BD34 (id int,name string, score int,sex int,age int) row format delimited fields t ...
- hive中order by、distribute by、sort by和cluster by的区别和联系
order by order by 会对数据进行全局排序,和oracle和mysql等数据库中的order by 效果一样,它只在一个reduce中进行所以数据量特别大的时候效率非常低.而且当设置 : ...
- hive中的distribute by、sort by、cluster by
1.背景 hive中有一个store表,字段分别是"商店所属人标识"(merid),"商户余额(money)","商店名称(name)".求 ...
- Hive中的Distribute by 搭配sort by
今天不学习,明天不学习,后天就习惯不学习了 小谈: 上次讲了sort by和order by的区别,order by 进行全局排序,此时的reduce只有1个. sort by分情况. 情况一:一个 ...
- 【Hive】sort by、order by、 distribute by、 group by 、cluster by区别
(1)order by是将所有数据放在一个reduce里面进行排序,当数据量大时,会出现内存溢出的问题,同时数据排序效率低. 另外,可以在sort by后面加上limit n来实现top n操作. ( ...
最新文章
- Mysql安装及入门
- springboot jar服务器运行后无法请求_Spring Boot微服务中Chaos Monkey的应用
- [转]个人开发者做一款Android App需要知道的事情
- python简介及环境安装
- 怎么查到运行的时间_“我的成考录取通知书怎么还没来,它是不是迷路了?”...
- 原 oracle执行update一直处于执行中,跟卡住一样
- 容器(Context)使用之支付系统
- git---怎样将分支上的一个单文件合并到主分支上(master)
- python物业管理系统_住宅小区物业管理系统分析与设计
- python中控脚本_python连接中控考勤机分析数据
- Java DAO、Service、web理解之DAO层
- Kafka及控制台【后台管理界面】部署
- 态度决定高度,高度决定命运。对自己要狠一点,再狠一点,因为,你要的比别人多,就必须付出得比别人多。...
- getpixel() java_android – 使用getPixel()方法提取的巨大负值
- AI 入门怎么学?这份学习指南请收好!
- Halcon17完美破解兼容17.12.0.0附破解说明
- 杰理zHiUSB设备功能【篇】
- Beta冲刺-第一天
- 软件工程第1次作业:阅读教材,提五个问题
- 【FMCW 04】测角-Angle FFT
热门文章
- Unity实现UI的边缘检测和拖拽拉伸功能
- 互联网产品运营日记(1):上线首日
- 桌面虚拟化中VDI和IDV的五大区别
- python添加图片要怎么弄_python怎么实现添加图片
- phpwind安装空白问题解决
- 狗生活在陆地上 java,第四晚,生活在陆地上的鱼
- html文件用ppt打开,ppt文件怎么打开?ppt是什么?
- 基于java的圆通快递单号自动识别api接口代码实例
- mongodb不等于某个值_mongodb条件查询不等于
- amd显卡测试大风车软件md,知之实验室 篇三:大家好才是真的好!免费显卡升级工具AMD FSR技术研究测试...