Hive中的几种排序方式
Order By
Order By 会对输入做全局的排序,所以只会有一个reduce,这样的话在大量数据面前查询效率较低,费时较长
select * from salary order by salary desc;
//desc 升序 asc降序结果:
+--------------+----------------+----------------+
| salary.name | salary.depart | salary.salary |
+--------------+----------------+----------------+
| yanyan | 2 | 12000 |
| xiaolong | 2 | 8000 |
| john | 2 | 8000 |
| qianba | 1 | 8000 |
| zhaowu | 2 | 7000 |
| xmith | 2 | 5000 |
| lilei | 2 | 5000 |
| zhaoliu | 1 | 4000 |
| wangwu | 1 | 4000 |
| lisi | 1 | 4000 |
| zhangsan | 1 | 3000 |
+--------------+----------------+----------------+
Sort By
Sort By不是全局的排序,它在进入reduce阶段之前就已经排序。
使用Sort by 可以设定reduce的数量
set mapred.reduce.tasks=2; //启动两个reduce
设置过后,然后使用sort by 执行一条查询 你会发现hiveserver2中的reduce信息如下:reduce启动了两个
2018-09-03 22:28:57,698 Stage-1 map = 0%, reduce = 0%
2018-09-03 22:29:07,527 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.69 sec
2018-09-03 22:29:23,086 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 6.07 sec
MapReduce Total cumulative CPU time: 6 seconds 70 msec
Ended Job = job_1535982778257_0006
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 2 Cumulative CPU: 6.07 sec HDFS Read: 11241 HDFS Write: 460 SUCCESS
Total MapReduce CPU Time Spent: 6 seconds 70 msec
distribute by
distribute by通过计算一个列的值进行分区,有几个分区 sory by 就执行几次,也就会有多少个reduce
select * from salary distribute by depart sort by salary asc;//我们通过 distribute by 对列计算值分区,然后查询排序结果:+--------------+----------------+----------------+
| salary.name | salary.depart | salary.salary |
+--------------+----------------+----------------+
| xmith | 2 | 5000 |
| lilei | 2 | 5000 |
| zhaowu | 2 | 7000 |
| xiaolong | 2 | 8000 |
| john | 2 | 8000 |
| yanyan | 2 | 12000 |
| zhangsan | 1 | 3000 |
| zhaoliu | 1 | 4000 |
| wangwu | 1 | 4000 |
| lisi | 1 | 4000 |
| qianba | 1 | 8000 |
+--------------+----------------+----------------+
CLUSTER BY //聚集
cluster by就是distribute by+sort by的组合,但是只能默认升序,不支持自定义升序排序
select * from salary cluster by salary;结果:+--------------+----------------+----------------+
| salary.name | salary.depart | salary.salary |
+--------------+----------------+----------------+
| zhangsan | 1 | 3000 |
| zhaoliu | 1 | 4000 |
| wangwu | 1 | 4000 |
| lisi | 1 | 4000 |
| xmith | 2 | 5000 |
| lilei | 2 | 5000 |
| zhaowu | 2 | 7000 |
| xiaolong | 2 | 8000 |
| john | 2 | 8000 |
| qianba | 1 | 8000 |
| yanyan | 2 | 12000 |
+--------------+----------------+----------------+
Hive中的几种排序方式相关推荐
- Hive中的四种排序方式(order by,sort by,distribute by,cluster by)使用与区别详解
在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别: order by sort by distribute by clus ...
- mysql中两次排序_MySQL中的两种排序方式: index和filesort
index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高. filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作, ...
- Hive中的四种排序
一.Order by order by会对输入的数据做全局排序,因此只有一个reducer,多个reducer无法保证全局有序.只有一个reducer的弊端在于当输入的数据量较大时,需要较长的计算时间 ...
- javaScript中的几种排序方式
2019独角兽企业重金招聘Python工程师标准>>> 冒泡排序 function bubble(arr){for(var i=0;i<arr.length-1;i++){va ...
- java7代码示例_Java中的七种排序方式代码示例
packagebaseJava;/*** @title SortMethods.java *@authorDonsenChen * @Date 2018年5月2日 上午10:16:03 * @Desc ...
- 061 hive中的三种join与数据倾斜
一:hive中的三种join 1.map join 应用场景:小表join大表 一:设置mapjoin的方式: )如果有一张表是小表,小表将自动执行map join. 默认是true. <pro ...
- 4种排序方式比较:order by, sort by, distribute by, cluster by
文章记录了4种排序方式:order by, sort by, distribute by, cluster by 总结: order by 全局排序,只有一个 Reducer,通过order对字段进行 ...
- Java两种排序方式快慢比较
2019独角兽企业重金招聘Python工程师标准>>> Java中List的排序方式有两种,现在我们测试下这两种排序方式的快慢吧,我们需要用到两个类, 一个是运行程序的Main类,另 ...
- hive安装测试及Hive 元数据的三种存储方式
一 hive安装测试 1.下载解压 tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz) 将解压后的hive-0.8.1文件放在系统的/home/had ...
最新文章
- Unity的三种Interceptor
- JSON.stringify()中文乱码
- vue工程打包上线样式错乱问题 - bug解决(4种)
- odoo pivot中去掉求和_JDK 7 中的 Fork/Join 模式
- 如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
- java+单例懒加载_swift 进阶:懒加载 单例
- 使用ffmpeg步骤
- Ubuntu16.04中好用的软件(持续更新)
- Latex自定义图表序号
- mobaXterm中delete键显示^?
- Android 渠道游戏 - 聚合SDK
- 体育赛事系统设计方案
- 并发编程——Forkjoin设计模式原理
- (HIIT)高强度间歇训练
- java毕业设计学科竞赛管理系统Mybatis+系统+数据库+调试部署
- php distinct 用法,distinct的用法
- 2021年安全员-A证考试内容及安全员-A证模拟考试
- python扫雷_python做扫雷
- 无线串口模块通信技术参数快速选型指南
- 微信加菲猫连接服务器失败,一个加菲猫猫奴的哭诉,养加菲猫可能是我这辈子做过最错误的决定...