新年的第一天,希望远在几百公里外的她现在睡得正香

问题:

在学习hive的时候,面对一些东西,总是模棱两可。直接切入话题,sort by和order by的联系与区别。

分析:

hive中的order by语句和其它的sql一样,都会对查询结果集进行全局排序,也就是说所有的数据集都会汇集到一个reduce当中去进行排序,对于大数据集,这个过程可能会消耗太过漫长的时间来执行。

hive增加了一个可以选择的方式,那就是sort by。只会在每个reduce里面进行排序,什么意思呢?如果reduce只有一个的话,那么sort by 和 order by的功能就是一样的,都是对全局进行一个排序,如果reduce的个数多余1个的话,作用就不一样了。sort by如果有两个reuce,那么查询集会分到两个reduce里面。分别在每一个reduce里面进行局部排序,最后将局部排序后的数据汇总起来,这样可以提高全局排序的效率。

实践证明:

首先看一个数据集

        

在上面的图中,就是order by的结果,因为order by只在一个reduce里面进行全局排序。

下面我们看一下只有一个reduce时的sort by。

可以看出来,在只有一个reduce的时候,sort by和order by发挥的作用是一致的。

下面来看reduce为2的情况下,sort by的结果是否还是全局排序。

  1. 首先设置reduce的个数为2

2.在reduce个数为2的情况下的执行信息
                

3.reduce个数为2的执行结果

可以看到,我们最后的结果集并不是完全有序的,是每个reduce里面的局部有序,汇总到一块。只能保证每个reduce里面的结果是局部有序的,不同的reduce的输出就可能会有重叠

总结:关于sort by和order by,通常用的都是Order by。什么时候用sort by呢?当不想hdfs的小文加比较多的时候,我们可以用distuibuted by 和 sort by进行控制小文件的数量。

今天晚上,我会将sort by和distuibuted by的用法写给大家。

order by和sort by的区别相关推荐

  1. distribute by、 clustered by 、 order by 、 sort by 的区别

    order by 会最终在一个reducer上面做排序,全局统一 sort by 一般会和distribute by配合使用,distribute by会把按照后面跟的字段把数据打到同一个 reduc ...

  2. order by 、sort by、distribute by、group by、cluster by的区别

    转载:https://www.cnblogs.com/huxinga/p/7688376.html 转载:https://blog.csdn.net/SunWuKong_Hadoop/article/ ...

  3. 每天学习笔记系列-HIVE SQL : ORDER BY 与 SORT BY

    之前一直没太关注 order by 和sort by的区别,今天看了下. 首先 ,如果在 严格模式下直接使用order by 会报错,必须加上 LIMIT关键字; In strict mode, if ...

  4. hive 中 order by、sort by、distribute by 、cluster by 区别

    1. select 语法 Hive 中的 SELECT 基础语法和标准SQL语法基本一致,支持 WHERE.DISTINCT.GROUP BY.ORDER BY.HAVING.LIMIT.子查询等.语 ...

  5. SQL中的Where,Group By,Order By和Having的用法/区别

    GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按  ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何 ...

  6. sort 与 sorted 区别:

    sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值, ...

  7. 【hive】order by、sort by、distribute by、cluster by的区别

    Order By(全局排序) Order By 用于结果集的排序.也可以称之为全局排序.对于 MR 任务来说,如果我们使用了 Order By 排序,意味着MR 任务只会有一个 Reducer 参与排 ...

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

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

  9. Hive sql 中 order by、sort by、distribute by、cluster by用法

    名词解释: 名词解释: order by Hive中的order by和数据库中的order by 功能一致,按照某一项或者几项排序输出,可以指定是升序或者是降序排序.它保证全局有序,但是进行orde ...

最新文章

  1. 【关注】3000多警力围剿“毒村”!现实比影视剧更惊险
  2. 图像增强——基于OpenCV的图像色彩增强
  3. python中二维数组如何按索引找元素_按索引或坐标访问二维数组中的元素
  4. 通过Github Teams进行代码仓库的权限访问控制
  5. OpenCV-CL: OpenCL加速计算机视觉技术
  6. 移动端导出excel_连载系列【4】Excel开发移动端quot;APPquot;
  7. python动态与静态语言_静态语言和动态语言的区别
  8. Java基础学习总结(38)——Lombok(消除冗长的 java 代码)的使用和原理及安装、入门使用
  9. nginx+双tomcat集群负载均衡(一台机器)
  10. 【Proteus仿真8086】简单IO接口实验——读取开关状态控制灯的亮灭
  11. mysql replace的弊端_MySQL谨慎使用replace into
  12. 2022道路运输企业安全生产管理人员复训题库及答案
  13. 计算机怎么不显示打开文件桌面,开机不显示桌面图标怎么办【解决方法】
  14. c#进行三角形周长面积计算公式_C#程序设计 输入三角形三边长,并计算的周长和面积...
  15. 一文快速入门三维人脸重建学习
  16. 计算机数学基础知识点归纳,计算机数学基础--详细介绍
  17. helm部署jenkins到k8s并创建pipeline构建项目
  18. 苹果怎么下第二个微信_封面苹果手机微信聊天记录怎么恢复?
  19. C语言编程学习:写的秒速计算四则混合运算项目
  20. 03 SpringMVC 处理响应

热门文章

  1. python可以调用c语言吗_python 调用c语言详解
  2. 计算机登录域时很慢,win7 登入域 网络一直处于 正在识别 要10几分钟 导致关机慢 - Microsoft Community...
  3. vue无需改动代码的SEO优化【百度收录问题】优化--puppeteer(详细流程)
  4. matlab移花接木,数据帝:天山移花接木VS明教怒火连斩
  5. 瑞士轮赛制模拟器_比赛赛制科普专栏03 瑞士轮制
  6. androidStudio不得不装的21款,Android Studio插件
  7. Memory Protection Unit Introduction
  8. LINUX设备驱动模型分析之三 驱动(DRIVER)接口分析
  9. 拆解一个抽奖送的扫地机器人
  10. SpringAop之joinPoint讲解