Hive窗口函数案例总结

简介: Hive窗口函数案例总结

在hive中,可以使用substr()函数截取字符串,比如从日期中截取年份、月份等信息。

还有一个函数是substring(),用法基本上与substr()相同,至于区别这里暂时不做研究。

substr()——在字符串A中从指定位置开始截取一定长度的字符。

substr(string A, int start,int length)
  • string A——输入需要处理的字符串
  • int start——开始截取的位置索引(int),注意索引从1开始,如果此处输入0,结果与输入1相同。
  • int length——截取的长度(int)

比如

  1. 处理日期的两种方式:
  1. substring(orderdate,1,7) = ‘2017-04’
  2. year(orderdate) = 2017 and month(orderdate) = 04
  1. 截取年月

2022-04-13'

  substring(order_date,1,7)  

结果:2022-04

两种特殊情况


当指定ORDER BY缺少WINDOW子句时,WINDOW规范默认为RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW。


如果同时缺少ORDER BY和WINDOW子句,则WINDOW规范默认为ROW BETWEENUND UNBOUNDED PRECEDING和UNBOUNDED FOLLOWING。


以下函数在over()里面只能分区和排序,不能自定义窗口大小了,也就是不能再写window字句


排序分析函数 都不能写 例如: Rank, NTile, DenseRank, CumeDist, PercentRank.


Lead 和 Lag不能写


排名函数


RANK() 排序相同时会重复,会跳号


DENSE_RANK() 排序相同时会重复,不会跳号


ROW_NUMBER() 会根据顺序计算


FIRST_VALUE (col,true/false):当前窗口下的第一个值,第二个参数为true,跳过空值

LAST_VALUE (col,true/false):当前窗口下的最后一个值,第二个参数为true,跳过空值

NTILE(n):把有序窗口的行分发到指定数据的组中,各个组有编号,编号从1开始,对于每一行,NTILE返回此行所属的组的编号。注意:n必须为int类型。


相关文章
|
4月前
|
SQL HIVE
hive窗口函数应用实例
hive窗口函数应用实例
|
5月前
|
SQL HIVE
Hive 【Hive(七)窗口函数练习】
Hive 【Hive(七)窗口函数练习】
|
5月前
|
SQL 分布式计算 Serverless
Hive【Hive(六)窗口函数】
Hive【Hive(六)窗口函数】
|
7月前
|
SQL 分布式计算 资源调度
线上 hive on spark 作业执行超时问题排查案例分享
线上 hive on spark 作业执行超时问题排查案例分享
|
8月前
|
SQL 大数据 开发工具
大数据Hive窗口函数应用实例 2
大数据Hive窗口函数应用实例
92 0
|
8月前
|
SQL 大数据 开发工具
大数据Hive窗口函数应用实例 1
大数据Hive窗口函数应用实例
51 0
|
2月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
97 7
|
9月前
|
SQL HIVE
Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)(二)
Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)(二)
|
10月前
|
SQL HIVE
Hive 常用的窗口函数【高频重点】(下)
Hive 常用的窗口函数【高频重点】(下)
58 0
|
5月前
|
SQL 消息中间件 存储
案例:Flume消费Kafka数据保存Hive
案例:Flume消费Kafka数据保存Hive
68 0