排序

全局排序

Order By:全局排序,一个reduce

1. 使用 ORDER BY 子句排序
ASC(ascend): 升序(默认)
DESC(descend): 降序

2. ORDER BY 子句在SELECT语句的结尾。

3. 案例实操

查询学生的成绩,并按照分数降序排列

SELECT * FROM student s LEFT JOIN score sco ON s.s_id = sco.s_id ORDER BY sco.s_score DESC;

查询学生的成绩,并按照分数升序排列

SELECT * FROM student s LEFT JOIN score sco ON s.s_id = sco.s_id ORDER BY sco.s_score asc;

按照别名排序

按照分数的平均值排序

select s_id ,avg(s_score) avg from score group by s_id order by avg;

多个列排序

按照学生id和平均成绩进行排序

select s_id ,avg(s_score) avg from score group by s_id order by s_id,avg;

每个MapReduce内部排序(Sort By)局部排序

Sort By:每个MapReduce内部进行排序,对全局结果集来说不是排序。

1. 设置reduce个数

set mapreduce.job.reduces=3;

2. 查看设置reduce个数

set mapreduce.job.reduces;

3. 查询成绩按照成绩降序排列

select * from score sort by s_score;

4. 将查询结果导入到文件中(按照成绩降序排列)

insert overwrite local directory '/export/servers/hivedatas/sort' select * from score sort by s_score

分区排序(DISTRIBUTE BY)

Distribute By:类似MR中partition,进行分区,结合sort by使用。

注意,Hive要求DISTRIBUTE BY语句要写在SORT BY语句之前。

对于distribute by进行测试,一定要分配多reduce进行处理,否则无法看到distribute by的效果。

案例实操:先按照学生id进行分区,再按照学生成绩进行排序。

1. 设置reduce的个数,将我们对应的s_id划分到对应的reduce当中去

set mapreduce.job.reduces=7;

2. 通过distribute by 进行数据的分区

insert overwrite local directory '/export/servers/hivedatas/sort' select * from score distribute by s

CLUSTER BY

当distribute by和sort by字段相同时,可以使用cluster by方式。

cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是倒序排序,不能指定排序规则为ASC或者DESC。

以下两种写法等价

select * from score cluster by s_id;
select * from score distribute by s_id sort by s_id;

Hive的基本操作-排序相关推荐

  1. Hive的基本操作-数据库的创建和删除

    Hive 的基本操作 创建数据库 create database if not exists myhive; use myhive; 说明:hive的表存放位置模式是由hive-site.xml当中的 ...

  2. 实验六:熟悉Hive的基本操作

    由于CSDN上传md文件总是会使图片失效 完整的实验文档地址如下: https://download.csdn.net/download/qq_36428822/85709631?spm=1001.2 ...

  3. (超长文)Hive Sql基本操作

    Hive Sql基本操作 1.hive里面不显示列名 2.注释问题2.1 MySQL中的注释2.2 Hive中的注释3.乱码问题3.1 修改表字段注解和表注解3.2 修改分区字段注解3.3 修改索引注 ...

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

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

  5. Hive的基本操作总结

    文章目录 目录 前言: 1.Hive基本操作 1.1.DDL操作 1.2.DML操作 1.3.Hive Join 总结: 目录 前言: 对于Hive来说最重要的一点就是能够用Hql来进行数据分析.而H ...

  6. oracle 分桶,Hive 对象 基本操作

    在之前的博客中我们看了Hive 环境的搭建,如下: Hive 3.1.1 环境 搭建手册 https://www.cndba.cn/dave/article/3335 本篇我们了解一下Hive对象的基 ...

  7. Hive的基本操作-基本查询语法

    Hive 查询语法 SELECT SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE w ...

  8. Hive中的排序语法

    ORDER BY hive中的ORDER BY语句和关系数据库中的sql语法相似.他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间. ...

  9. 【大数据基础实践】(六)数据仓库Hive的基本操作

    目录 1. 数据仓库概念 2. Hive简介 2.1 简介 2.2 特性 2.3 生态系统 3. Hive系统架构 4. HQL转成MapReduce作业的原理 4.1 join的实现原理 4.2 g ...

最新文章

  1. 金蝶加密服务器显示339错误,打开金蝶软件出现这个提示怎么解决???
  2. OPM攻击事件后:我们从中学到了什么?
  3. Powershell Module for Netapp Data Ontap
  4. websecurity连接mysql_将MySQL连接器JAR放在我的WAR的WEB-INF / lib而不是tomcat lib中,使j_security_check失败...
  5. hive简介以及安装配置
  6. 易助erp系统服务器安装,易助ERP系统操作培训教程
  7. sql server死锁_如何使用扩展事件和SQL Server代理自动执行SQL Server死锁收集过程
  8. PMP考试中关于应急准备金和管理应急准备金的总结
  9. 一致性 hash 算法(consistent hashing)
  10. Silverlight WCF RIA服务(十七)数据 7
  11. java 2分代复制垃圾回收_Java垃圾回收机制
  12. php回滚实例_thinkphp 的事务回滚处理 和 原始PHP的事务回滚实例
  13. 《东周列国志》第五十九回 宠胥童晋国大乱 诛岸贾赵氏复兴
  14. nfs总结之生产实例
  15. 普加项目管理甘特图使用--安装部署
  16. 【mud】xyj450里的toy下的buwawa脚本问题
  17. Android渠道推广方案相关知识收集
  18. 城市天际线 for Mac城市建造类游戏
  19. 《流浪地球》海报丨见证小破球24亿票房逆袭之路
  20. c语言中=是什么意思,c语言中==是什么意思?

热门文章

  1. 借助 CORS 从 JavaScript 使用 API 应用
  2. ubuntu 启动 重启 停止 apache
  3. 网络摄像头4 cmos 0v9650,driver
  4. PlentyOfFish.com .NET网站的又一传奇
  5. MySQL简单查询性能分析
  6. Python爬虫人工智能大数据全栈视频史上最全合辑教程分享!
  7. 使用canvas绘制楼梯(canvas直线绘制练习)
  8. JavaScript高级程序设计学习(六)之设计模式
  9. 基于以太坊网络的智能合约开发、部署和测试(入门)
  10. 项目笔记:2017年(SSM架构)