Hive:窗口函数[ntile, first_value,row_number() ,rank(),dens_rank()]和自定义函数

ntile 分组

它把有序的数据集合 平均分配 到 指定的数量(num )个桶中 , 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。
被称作窗口函数、序列函数或分析函数, 本质上是一种窗口函数,但由于其生成序列化编号的特性,也被称为序列函数;同时,由于窗口函数在某些数据库系统中被称为分析函数, NTILE 也常被归类为分析函数
使用场景: 常用于将数据分段,以便进行分组分析或计算分位数。

示例


first_value和last_value

窗口函数,常与 OVER 子句结合使用,以定义窗口的范围和排序规则

示例

注意: 使用last_value需要指定窗口的范围,使用rows或rang,

如果没有指定的话,窗口函数的行为取决于数据库的具体实现.在某些数据库系统中,如果未明确指定窗口范围,LAST_VALUE 函数可能会返回整个结果集的最后一个值。但是,在Hive中,如果不指定窗口范围,LAST_VALUE 函数默认会将整个分区(在没有 PARTITION BY 子句的情况下,整个结果集就是一个分区)视为窗口,并为每一行返回整个窗口内的最后一个值。

FIRST_VALUE 和 LAST_VALUE 的行为可能因版本和实现而异。为了确保跨数据库系统的兼容性和可预测性,建议在使用这些函数时总是明确指定窗口范围(rows或rang)。这样可以避免因默认行为而导致的意外结果。

lag 和 lead

窗口函数

使用场景: 处理时间序列数据或需要比较当前记录与相邻记录

语法:

3个排名函数

属于窗口函数, 格式: 排序函数 over( order by 字段 排序方式)

row_number : 不存在并列名次

rank() :并列名次情况,顺序跳跃递增

dense_rank() : 有并列名次情况,顺序递增

示例排序效果

row_number

rank()

dens_rank()

自定义函数

示例

相关推荐
计算机编程指导师4 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
计算机编程指导师7 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
计算机编程指导师8 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
计算机编程指导师8 小时前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
计算机编程指导师9 小时前
Python大数据毕设怎么写?Django结合Hadoop+Spark京东销售分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·京东商品
计算机编程指导师10 小时前
大数据毕业设计推荐:Hadoop+Django全球碳排放减排策略分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·碳排放
计算机编程指导师10 小时前
Python大数据毕设怎么做?基于Hadoop+Spark的高频电力消耗数据可视化与分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·电力
计算机编程指导师11 小时前
【计算机毕设】基于Hadoop+Spark的美国互联网银行贷款数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·贷款
古法老登瞎折腾12 小时前
Hive 源码导读(三):都是 SELECT,为什么有的查询不需要 YARN?
数据仓库·hive·hadoop
计算机编程指导师14 小时前
计算机大数据项目推荐:基于Hadoop+Django的人工智能社交媒体情绪数据分析可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·毕业设计·社交媒体