2021年大数据Hive(七):Hive的开窗函数
全网最详细的Hive文章系列,强烈建议收藏加关注!
后面更新文章都会列出历史文章目录,帮助大家回顾知识重点。
目录
系列历史文章
前言
Hive的开窗函数
一、窗口函数 ROW_NUMBER,RANK,DENSE_RANK
1、数据准备
2、ROW_NUMBER
3、RANK 和 DENSE_RANK
二、Hive分析窗口函数 SUM,AVG,MIN,MAX
1、数据准备
2、SUM(结果和ORDER BY相关,默认为升序)
3、AVG,MIN,MAX
系列历史文章
2021年大数据Hive(十二):Hive综合案例!!!
2021年大数据Hive(十一):Hive调优
2021年大数据Hive(十):Hive的数据存储格式
2021年大数据Hive(九):Hive的数据压缩
2021年大数据Hive(八):Hive自定义函数
2021年大数据Hive(七):Hive的开窗函数
2021年大数据Hive(六):Hive的表生成函数
2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
2021年大数据Hive(四):Hive查询语法
2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
2021年大数据Hive(一):Hive基本概念
前言
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习。
有对大数据感兴趣的可以关注微信公众号:三帮大数据
Hive的开窗函数
一、窗口函数 ROW_NUMBER,RANK,DENSE_RANK
1、数据准备
cookie1,2021-06-10,1cookie1,2021-06-11,5cookie1,2021-06-12,7cookie1,2021-06-13,3cookie1,2021-06-14,2cookie1,2021-06-15,4cookie1,2021-06-16,4cookie2,2021-06-10,2cookie2,2021-06-11,3cookie2,2021-06-12,5cookie2,2021-06-13,6cookie2,2021-06-14,3cookie2,2021-06-15,9cookie2,2021-06-16,7CREATE TABLE it_t1 (cookieid string,createtime string, --daypv INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';-- 加载数据:load data local inpath '/export/data/hivedatas/it_t2.txt' into table it_t1;
2、ROW_NUMBER
ROW_NUMBER() 从1开始,按照顺序,生成分组内记录的序列
SELECT cookieid,createtime,pv,ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rnFROM it_t1;
3、RANK 和 DENSE_RANK
RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位
DENSE_RANK() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位
SELECT cookieid,createtime,pv,RANK() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rn1,DENSE_RANK() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rn2,ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY pv DESC) AS rn3FROM it_t1WHERE cookieid = 'cookie1';
二、Hive分析窗口函数 SUM,AVG,MIN,MAX
1、数据准备
--建表语句:create table it_t2(cookieid string,createtime string, --daypv int) row format delimitedfields terminated by ',';--加载数据:load data local inpath '/root/hivedata/ it_t2.txt' into table it_t2;--开启智能本地模式SET hive.exec.mode.local.auto=true;
2、SUM(结果和ORDER BY相关,默认为升序)
select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime) as pv1from it_t2;select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between unbounded preceding and current row) as pv2from it_t2;select cookieid,createtime,pv,sum(pv) over(partition by cookieid) as pv3from it_t2; --如果没有order by排序语句 默认把分组内的所有数据进行sum操作select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between 3 preceding and current row) as pv4from it_t2;select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5from it_t2;select cookieid,createtime,pv,sum(pv) over(partition by cookieid order by createtime rows between current row and unbounded following) as pv6from it_t2;--pv1: 分组内从起点到当前行的pv累积,如,11号的pv1=10号的pv+11号的pv, 12号=10号+11号+12号--pv2: 同pv1--pv3: 分组内(cookie1)所有的pv累加--pv4: 分组内当前行+往前3行,如,11号=10号+11号, 12号=10号+11号+12号,13号=10号+11号+12号+13号, 14号=11号+12号+13号+14号--pv5: 分组内当前行+往前3行+往后1行,如,14号=11号+12号+13号+14号+15号=5+7+3+2+4=21--pv6: 分组内当前行+往后所有行,如,13号=13号+14号+15号+16号=3+2+4+4=13,14号=14号+15号+16号=2+4+4=10/*- 如果不指定rows between,默认为从起点到当前行;- 如果不指定order by,则将分组内所有值累加;- 关键是理解rows between含义,也叫做window子句:- preceding:往前- following:往后- current row:当前行- unbounded:起点- unbounded preceding 表示从前面的起点- unbounded following:表示到后面的终点*/
3、AVG,MIN,MAX
AVG,MIN,MAX和SUM用法一样
select cookieid,createtime,pv,avg(pv) over(partition by cookieid order by createtime rows between unbounded preceding and current row) as pv2from it_t2;select cookieid,createtime,pv,max(pv) over(partition by cookieid order by createtime rows between unbounded preceding and current row) as pv2from it_t2;select cookieid,createtime,pv,min(pv) over(partition by cookieid order by createtime rows between unbounded preceding and current row) as pv2from it_t2;
-
2021年大数据Hive(七):Hive的开窗函数相关推荐
- 2021年大数据Hive(十二):Hive综合案例!!!
全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive综合案例 一.需求描述 二.项目表的字段 三.进 ...
- 2021年大数据Hive(十一):Hive调优
全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive调优 一.本地模式 1.空key处理 二.SQL ...
- 2021年大数据Hive(九):Hive的数据压缩
全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive的数据压缩 一.MR支持的压缩编码 二.压缩配置 ...
- 2021年大数据Hive(八):Hive自定义函数
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...
- 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...
- 2021年大数据Hive(四):Hive查询语法
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...
- 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive数据库和表操作 一.数据库操作 1.创建数据库 2.创建 ...
- 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...
- 2021年大数据Hive(一):Hive基本概念
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 历史文章 前言 Hive基本概念 一.Hive介绍 1.什么是Hive 2.为什么使 ...
最新文章
- 路由器学习之静态路由实验
- ubuntu下不同版本python安装pip及pip的使用
- 刚学编程的程序员必备这5大编程网站,你知道几个?
- STL 二分查找 upper_bound和lower_bound用法
- Mysql-索引的基础和类型
- 循序渐进PYTHON3(十三) --8-- DJANGO之ADMIN
- 文末送书 | 自动机器学习(AutoML):方法、系统与挑战
- 为什么中国人穷得只剩房子
- Android M cm主题,M Dark Mode CM12.1 CM13 theme
- 华为软件开发云又出新服务:开源镜像站正式上线,致敬开源,使能开发者!
- 2015全国硕士研究生计算机考研真题(附答案)
- Zynq7000(XC7Z045FF900)硬件开发完整指南
- Windows平台下常见快捷指令
- 逍遥游 一致性和哥德尔两大定理—— 读哥德尔之八
- App 运营 推广相关
- js关闭浏览器当前页(iframe)
- 中文加解密异常的问题
- win10电脑中病毒了怎么办,win10电脑中毒怎么解决
- apfs扩容_如何在MacOS High Sierra上调整APFS容器的大小
- 边缘计算网关是什么?有什么功能和特点?
热门文章
- 通过anaconda2安装python2.7和安装pytorch
- 发现服务内存中free部分很小,available部分很大,应该怎么办
- 文本框可编辑查看页面
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- 命名实体识别入门教程(必看)
- LLVM一些编程语法语义特性
- 光谱投影颜色感知器件与围栅多桥沟道晶体管技术
- nvGRAPH原理概述
- Recommenders with TensorRT
- 模拟内存计算如何解决边缘人工智能推理的功耗挑战
- 2021年大数据Hive(十二):Hive综合案例!!!