order by和sort by的区别
新年的第一天,希望远在几百公里外的她现在睡得正香
问题:
在学习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的结果是否还是全局排序。
- 首先设置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的区别相关推荐
- distribute by、 clustered by 、 order by 、 sort by 的区别
order by 会最终在一个reducer上面做排序,全局统一 sort by 一般会和distribute by配合使用,distribute by会把按照后面跟的字段把数据打到同一个 reduc ...
- 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/ ...
- 每天学习笔记系列-HIVE SQL : ORDER BY 与 SORT BY
之前一直没太关注 order by 和sort by的区别,今天看了下. 首先 ,如果在 严格模式下直接使用order by 会报错,必须加上 LIMIT关键字; In strict mode, if ...
- hive 中 order by、sort by、distribute by 、cluster by 区别
1. select 语法 Hive 中的 SELECT 基础语法和标准SQL语法基本一致,支持 WHERE.DISTINCT.GROUP BY.ORDER BY.HAVING.LIMIT.子查询等.语 ...
- SQL中的Where,Group By,Order By和Having的用法/区别
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何 ...
- sort 与 sorted 区别:
sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值, ...
- 【hive】order by、sort by、distribute by、cluster by的区别
Order By(全局排序) Order By 用于结果集的排序.也可以称之为全局排序.对于 MR 任务来说,如果我们使用了 Order By 排序,意味着MR 任务只会有一个 Reducer 参与排 ...
- 2.12 Hivet中order by,sort by、distribute by和cluster by
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy 一.order by 对全局数据的排序,仅仅只有一个red ...
- Hive sql 中 order by、sort by、distribute by、cluster by用法
名词解释: 名词解释: order by Hive中的order by和数据库中的order by 功能一致,按照某一项或者几项排序输出,可以指定是升序或者是降序排序.它保证全局有序,但是进行orde ...
最新文章
- 【关注】3000多警力围剿“毒村”!现实比影视剧更惊险
- 图像增强——基于OpenCV的图像色彩增强
- python中二维数组如何按索引找元素_按索引或坐标访问二维数组中的元素
- 通过Github Teams进行代码仓库的权限访问控制
- OpenCV-CL: OpenCL加速计算机视觉技术
- 移动端导出excel_连载系列【4】Excel开发移动端quot;APPquot;
- python动态与静态语言_静态语言和动态语言的区别
- Java基础学习总结(38)——Lombok(消除冗长的 java 代码)的使用和原理及安装、入门使用
- nginx+双tomcat集群负载均衡(一台机器)
- 【Proteus仿真8086】简单IO接口实验——读取开关状态控制灯的亮灭
- mysql replace的弊端_MySQL谨慎使用replace into
- 2022道路运输企业安全生产管理人员复训题库及答案
- 计算机怎么不显示打开文件桌面,开机不显示桌面图标怎么办【解决方法】
- c#进行三角形周长面积计算公式_C#程序设计 输入三角形三边长,并计算的周长和面积...
- 一文快速入门三维人脸重建学习
- 计算机数学基础知识点归纳,计算机数学基础--详细介绍
- helm部署jenkins到k8s并创建pipeline构建项目
- 苹果怎么下第二个微信_封面苹果手机微信聊天记录怎么恢复?
- C语言编程学习:写的秒速计算四则混合运算项目
- 03 SpringMVC 处理响应
热门文章
- python可以调用c语言吗_python 调用c语言详解
- 计算机登录域时很慢,win7 登入域 网络一直处于 正在识别 要10几分钟 导致关机慢 - Microsoft Community...
- vue无需改动代码的SEO优化【百度收录问题】优化--puppeteer(详细流程)
- matlab移花接木,数据帝:天山移花接木VS明教怒火连斩
- 瑞士轮赛制模拟器_比赛赛制科普专栏03 瑞士轮制
- androidStudio不得不装的21款,Android Studio插件
- Memory Protection Unit Introduction
- LINUX设备驱动模型分析之三 驱动(DRIVER)接口分析
- 拆解一个抽奖送的扫地机器人
- SpringAop之joinPoint讲解