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

1). order by

只有一个reduce负责对所有的数据进行排序,若大数据量,则需要较长的时间。建议在小的数据集中使用order by 进行排序。
不管有多少map,也不管文件有多少的block只会启动一个reducer

2). order by

可以通过设置hive.mapred.mode参数控制执行方式,若选择strict,则order by 则需要指定limit(若有分区还有指定哪个分区) ;若为nostrict,则与关系型数据库差不多。

3). sort by

基本上不受hive.mapred.mode影响,可以通过mapred.reduce.task 指定reduce个数,查询后的数据被分发到相关的reduce中。

4). sort by

的数据在进入reduce前就完成排序,如果要使用sort by 是行排序,并且设置map.reduce.tasks>1,则sort by 才能保证每个reducer输出有序,不能保证全局数据有序。

5). distribute by

采集hash算法,在map端将查询的结果中hash值相同的结果分发到对应的reduce文件中。

6). distribute by

可以使用length方法会根据string类型的长度划分到不同的reduce中,最终输出到不同的文件中。 length 是内建函数,也可以指定其他的函数或这使用自定义函数。

7).distribute by和sort by一起使用

select mid, money, name from store distribute by mid sort by mid asc, money asc
我们所有的mid相同的数据会被送到同一个reducer去处理,这就是因为指定了distribute by mid,这样的话就可以统计出每个商户中各个商店盈利的排序了(这个肯定是全局有序的,因为相同的商户会放到同一个reducer去处理)。这里需要注意的是distribute by必须要写在sort by之前。

8). cluster by

除了distribute by 的功能外,还会对该字段进行排序,所以cluster by = distribute by +sort by 。
注意被cluster by指定的列只能是降序,

hive排序:distribute by 、sort by 、cluster by 、order by 区别相关推荐

  1. Hive中的排序:order by/sort by/cluster by

    Hive中关于排序的几种方法,有必要深入理解其原理. Order by 全局排序 1)Order By:全局排序,只有一个 Reducer,即使我们在设置set reduceer的数量为多个,但是在执 ...

  2. Hive 排序入门--order by与sort by

    order by (1):order by后面可以有多列进行排序,默认按字典排序. (2):order by为全局排序. (3):order by需要reduce操作,且只有一个reduce,无法配置 ...

  3. distribute by sort by

    一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间.关于 ...

  4. HIVE基本查询操作(二)——第1关:Hive排序

    第1关:Hive排序 任务描述 本关任务:2013年7月22日买入量最高的三种股票. 相关知识 为了完成本关任务,你需要掌握:1. Hive的几种排序:2. limit使用. hive的排序 ① or ...

  5. Hive 的 distribute by

    Order by 能够预期产生完全排序的结果,但是它是通过只用一个reduce来做到这点的.所以对于大规模的数据集它的效率非常低.在很多情况下,并不需要全局排序,此时可以换成Hive的非标准扩展sor ...

  6. seaborn使用boxplot函数可视化箱图并基于分组均值或者中位数进行箱图降序(descending)排序(Sort Boxplots in Descending Order)

    seaborn使用boxplot函数可视化箱图并基于分组均值或者中位数进行箱图降序(descending)排序(Sort Boxplots in Descending Order with Pytho ...

  7. linux的sort如何对时间排序,Linux中用Sort和Tsort对文件进行排序

    通过使用 sort 和 tsort,而不是采取使用 Perl 或 Awk 的较复杂的解决方案,可以节省时间,同时还能避免令人头疼的问题.Jacek Artymiak 将向您说明如何做到这一点. 尽管可 ...

  8. 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)

    树形选择排序 (tree selection sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 算法逻辑: 依据节点的大小, ...

  9. hive 窗口函数_Datatist科技专栏 | Hive排序窗口函数速学教程!

    作者:原上野 设计:Cindy 编辑:AI君 在开发过程中经常会遇见排序的场景,比如取top N的问题,这时候row_number(),rank,dense_ran()这三个函数就派上用场了,其中,r ...

最新文章

  1. Java数据类型和MySql数据类型对应表
  2. android 取色器_音乐剪辑器手机版下载-音乐剪辑器app下载v9.10.15 安卓免费版
  3. Android开发之ApiCloud模块开发的注意事项
  4. ASP.NET Core 配置源:实时生效
  5. abp.event.on与abp.event.off使用
  6. android动态设置文本居中显示图片,Android DrawableTextView图片文字居中显示实例
  7. 小电科技开启裁员,涉及多个部门一律劝退?回应:消息不属实
  8. 开始开发HoloLens应用吧 Start Developing HoloLens Apps Today
  9. Qt Qwdget 汽车仪表知识点拆解2 图像放大
  10. C语言调用拼多多api,vb CommonDialog 属性
  11. 文本比较工具-文本去重复工具
  12. 招聘简历管理系统(初步设计)
  13. 黑晓军 华中科技大学 博士 副教授
  14. 当前地震预测研究的状况报告
  15. mysql怎么生成db文件_如何使mysql生成.db文件
  16. 自己对香港一卡通的总结
  17. IP电话系统和VoIP系统使用指南
  18. 【Tableau 图表大全13】之树状图
  19. Shift键变成大小写切换怎么换回Caps lock键
  20. 章鱼体验思杰第二天:

热门文章

  1. Android第三十三期 - Dialog的应用
  2. 虚函数指针(vptr)与虚函数表(vptb)
  3. arcgis怎么只显示一个图斑_森林监测、图斑核查必备技能
  4. c语言的适当大小的子集,使用直接分析法编制C语言子集的词法分析程序..doc
  5. EXT--表单AJax提交后台,返回前端数据格式的转换
  6. vivox20 html阅读器,【vivoX20评测】屏幕:全面屏也得看显示素质_vivo X20_手机评测-中关村在线...
  7. php 测试数据整数,PHP中将字符串转化为整数(int) intval() printf() 性能测试
  8. Sublime Text 3 汉化
  9. android点滴9:模拟器中如何输入中文
  10. 实战MHDD检测硬盘