一: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相关推荐

  1. 2.12 Hivet中order by,sort by、distribute by和cluster by

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy 一.order by 对全局数据的排序,仅仅只有一个red ...

  2. hive排序:distribute by 、sort by 、cluster by 、order by 区别

    hive排序:distribute by .sort by .cluster by .order by 区别 1). order by 只有一个reduce负责对所有的数据进行排序,若大数据量,则需要 ...

  3. Sort By、Distribute By 使用说明书

    本文目录 数据准备阶段 1.Order By(全局排序) 2.Sort By(每个reduce内部排序) 3.Distribute By(指定分区规则) 4.Cluster By(分区字段和排序字段相 ...

  4. order by、distribute by、sort by、group by、partition by

    order by:全局排序 order by 会对数据进行一次全局排序,所以说,只要hive的sql中指定了order by,那么所有的数据都会到同一个reducer进行处理(不管有多少map,也不管 ...

  5. 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 ...

  6. hive中order by、distribute by、sort by和cluster by的区别和联系

    order by order by 会对数据进行全局排序,和oracle和mysql等数据库中的order by 效果一样,它只在一个reduce中进行所以数据量特别大的时候效率非常低.而且当设置 : ...

  7. hive中的distribute by、sort by、cluster by

    1.背景 hive中有一个store表,字段分别是"商店所属人标识"(merid),"商户余额(money)","商店名称(name)".求 ...

  8. Hive中的Distribute by 搭配sort by

    今天不学习,明天不学习,后天就习惯不学习了 小谈: 上次讲了sort by和order by的区别,order by 进行全局排序,此时的reduce只有1个. sort by分情况.  情况一:一个 ...

  9. 【Hive】sort by、order by、 distribute by、 group by 、cluster by区别

    (1)order by是将所有数据放在一个reduce里面进行排序,当数据量大时,会出现内存溢出的问题,同时数据排序效率低. 另外,可以在sort by后面加上limit n来实现top n操作. ( ...

最新文章

  1. Mysql安装及入门
  2. springboot jar服务器运行后无法请求_Spring Boot微服务中Chaos Monkey的应用
  3. [转]个人开发者做一款Android App需要知道的事情
  4. python简介及环境安装
  5. 怎么查到运行的时间_“我的成考录取通知书怎么还没来,它是不是迷路了?”...
  6. 原 oracle执行update一直处于执行中,跟卡住一样
  7. 容器(Context)使用之支付系统
  8. git---怎样将分支上的一个单文件合并到主分支上(master)
  9. python物业管理系统_住宅小区物业管理系统分析与设计
  10. python中控脚本_python连接中控考勤机分析数据
  11. Java DAO、Service、web理解之DAO层
  12. Kafka及控制台【后台管理界面】部署
  13. 态度决定高度,高度决定命运。对自己要狠一点,再狠一点,因为,你要的比别人多,就必须付出得比别人多。...
  14. getpixel() java_android – 使用getPixel()方法提取的巨大负值
  15. AI 入门怎么学?这份学习指南请收好!
  16. Halcon17完美破解兼容17.12.0.0附破解说明
  17. 杰理zHiUSB设备功能【篇】
  18. Beta冲刺-第一天
  19. 软件工程第1次作业:阅读教材,提五个问题
  20. 【FMCW 04】测角-Angle FFT

热门文章

  1. Unity实现UI的边缘检测和拖拽拉伸功能
  2. 互联网产品运营日记(1):上线首日
  3. 桌面虚拟化中VDI和IDV的五大区别
  4. python添加图片要怎么弄_python怎么实现添加图片
  5. phpwind安装空白问题解决
  6. 狗生活在陆地上 java,第四晚,生活在陆地上的鱼
  7. html文件用ppt打开,ppt文件怎么打开?ppt是什么?
  8. 基于java的圆通快递单号自动识别api接口代码实例
  9. mongodb不等于某个值_mongodb条件查询不等于
  10. amd显卡测试大风车软件md,知之实验室 篇三:大家好才是真的好!免费显卡升级工具AMD FSR技术研究测试...