大数据之Hive:hive中的四个by
目录
- 1.前言
- 2.order by
- 3.sort by
- 4.distribute by
- 5.Cluster By
- 6.实际需求
1.前言
hive中的四个by分别为order by,sort by,distribute by,cluster by;
下面具体讲解:
2.order by
全局排序,只有一个reduce;
缺点:当数据量非常大时,耗时太长,效率低下,适用于数据量较小的场景;
优点:数据全局排序;
select * from emp order by sal desc;
备注:当你使用order by时,默认只走一个reduce,和你设多少个reduce个数无关;
3.sort by
对每一个reducer内部的数据进行排序,全局结果集来说不是排序的,即只能保证每一个reduce输出的文件中的数据是按照规定的字段进行排序的;适用于数据量较大,但对排序要求不严格的场合,可以大幅度提升执行效率;
set mapreduce.job.reduces=3
set mapreduce.job.reduces;
select * from emp sort by deptno desc;
备注:需要你预先设置reduce个数,结果各个reduce文件内部有序,全局无序;
4.distribute by
控制特定的key到指定的reducer,方便后续的聚集操作,类似MR中partition(自定义分区),一般结合sort by使用;
这边需要设置reduces的数量为分区的数量,否则不会启动相应的reducer去进行任务的执行,这最终会导致不能完全分区;
hive (default)> set mapreduce.job.reduces=3;
hive (default)> select * from emp distribute by deptno sort by empno desc;
注意:
1. distribute by的分区规则是根据分区字段的hash码与reduce的个数进行模除后,余数相同的分到一个区。
2. Hive要求distribute by语句要写在sort by语句之前;
5.Cluster By
当distribute by和sorts by字段相同时,可以使用cluster by方式。
cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。
1)以下两种写法等价
hive (default)> select * from emp cluster by deptno;
hive (default)> select * from emp distribute by deptno sort by deptno;
补充:分桶表
对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分;
create table stu_buck(id int, name string)
clustered by(id)
into 4 buckets
row format delimited fields terminated by '\t';
6.实际需求
现在有一亿条数据,比如people_info,取出财富最高的前100位;
分析:显然需要排序,首先想到用order by ,可是显然不行,order by 效率太低,耗时太长;现在思考能不能先走多个reduce,区内有序,最后再全局排序;
具体实现:
select
*
from
(select
id,
name,
money
from peopel _info
distribute by loc sort by money limit 100) tmp
order by money limit 100;
备注:这里loc字段是peopel _info 里面自身就有的,如果没有你需要自己添加类似字段,比如level(按money 大小分level,可以用case when 函数,最终可以distribute by level sort by money ),这里方便记忆可以简单这么记,先distribute by sort by ,最后再order by ;
大数据之Hive:hive中的四个by相关推荐
- 大数据基础之Hive(四)—— 常用函数和压缩存储
作者:duktig 博客:https://duktig.cn (文章首发) 优秀还努力.愿你付出甘之如饴,所得归于欢喜. 更多文章参看github知识库:https://github.com/dukt ...
- 大数据面试之hive重点(二)
大数据面试之hive重点(二) Hive SQL转化为MR的过程? 可回答:1)Hive SQL的解析过程:2)Hive SQL的底层实现 问过的一些公司:阿里,头条,小米,滴滴,美团x2,网易,快手 ...
- 大数据面试之Hive常见题目
大数据面试之Hive常见题目 1. Hive的架构 1.重点四个器:解释器(SQL Parser).Driver:编译器(Compiler),优化器(Optimizer),执行器(Executor) ...
- Cris 小哥哥的大数据项目之 Hive 统计 YouTube 热门视频
Cris 小哥哥的大数据项目之 Hive 统计 YouTube 热门视频 Author:Cris 文章目录 Cris 小哥哥的大数据项目之 Hive 统计 YouTube 热门视频 Author:Cr ...
- 大数据知识面试题-Hive (2022版)
序列号 内容 链接 1 大数据知识面试题-通用(2022版) https://blog.csdn.net/qq_43061290/article/details/124819089 2 大数据知识面试 ...
- hive使用适用场景_大数据入门:Hive应用场景
在大数据的发展当中,大数据技术生态的组件,也在不断地拓展开来,而其中的Hive组件,作为Hadoop的数据仓库工具,可以实现对Hadoop集群当中的大规模数据进行相应的数据处理.今天我们的大数据入门分 ...
- B06 - 999、大数据组件学习③ - Hive
初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『 因为要去见那个不一般的人,所以我就不能是一般人.』 B99.要学就学大数据 - B系列总纲 ...
- 大数据技术原理与应用作业四
大数据技术原理与应用作业四 1. 试述在Hadoop体系架构中HBase与其他组成部分的相互关系. HBase利用Hadoop MapReduce来处理HBase中的海量数据,实现高性能计算: 利用Z ...
- 2018.11:大数据在政府统计中的应用、瓶颈及融合路径(余芳东)
内容摘要:应用大数据是未来政府统计发展的必然趋势.本文系统梳理当前政府统计应用大数据的基本类型,研究探索大数据统计应用实践和基本方法思路,剖析大数据统计应用面临的困难和瓶颈,提出推进大数据与政府统计工 ...
- 基于ISM的大数据在建筑领域中的应用障碍分析
点击上方蓝字关注我们 基于ISM的大数据在建筑领域中的应用障碍分析 纪颖波1, 赵子豪1, 姚福义2 1 北方工业大学土木工程学院,北京 100144 2 重庆大学管理科学与房地产学院,重庆 4000 ...
最新文章
- python ~ not 的区别 :前者按位取反,后者是逻辑‘与或非’的‘非’
- linux c 之sigsuspend 进程阻塞
- python和c哪个好学-C/C++和Python哪个更有前景?
- 怎么用计算机算亩数,怎样用手机测量亩数?
- wpf控件设计时支持(3)
- Firefox开发者工具里查看HTML元素的Box模型
- 【C语言】指向一维数组元素的指针
- 郑州大学校园网使用指南
- 使用httpclient下载 页面、图片
- linux上的ds命令,使用DS-5 进行Linux应用开发
- SpringBoot PageOffice 在线编辑 (完整版、有源码)
- STC15单片机-LED闪烁(定时器)
- 安装包的原理与制作安装包的流程
- Python、Cython、CPython的简单对比
- 解决华擎J3455主板DSM兼容性问题
- (PPT抠图)设置透明色/删除背景
- CGT Asia 2022第二届亚洲细胞与基因治疗创新峰会将于2022年7月10日-111日在上海举办
- easyx创建窗口及原理
- 大数据平台安装部署(适用虚拟机级真实服务器,亲测)
- 灰色模型相关---理论基础