| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Hive开窗函数总结 -> 正文阅读 |
|
[大数据]Hive开窗函数总结 |
随着技术的发展,各行各业产生的数据量级都越来越大,而hive sql作为大数据最好用的工具,使用的用户越来越多。但是,在日常工作中,好多同学对于hive sql的使用还仅仅停留在MySQL阶段。这可就大材小用了,要知道hive的数据处理能力要比mysql强很多,不仅仅是数量大,功能上也更强大。今天就给介绍一下hive的数据分析利器——开窗函数。 目录 应用场景在日常工作中,我们经常会遇到按照某个指标排序并增加排名;按照顺序累加某个指标;计算前一名与后一名的差距等问题。遇到这种问题,如果用MySQL解决,就需要使用自定义用户变量并进行自关联或者做笛卡尔积(例如:https://blog.csdn.net/qq_36893938/article/details/119250330),这种东西想想就让人头大。但是,如果使用hive的话,开窗函数就刚好解决了这个问题,第一次用hive开窗函数的我,大呼流弊! 定义开窗函数用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。 开窗函数主要分为三类:聚合计算类、排序类和取值类(详见后面部分)? 参数详解
聚合计算类sum/count/avg,配合partition by 和 order by可以实现累计求和,计算,求平均 排序类排序类的函数主要分为以下三类: rank:并列后一名名次=并列名次+并列人数 dense_rank:并列后一名名次=并列名次+1 row_number:序号没有相同的
取值类
格式:LAG/LEAD(col,n,DEFAULT) 用于统计窗口内往上第n行值。 第一个参数为列名, 第二个参数为往上第n行(可选,默认为1), 第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
取分组内排序后,截止到当前行,第一个值; LAST_VALUE 函数则相反:LAST_VALUE 取分组内排序后,截止到当前行,最后一个值。 结语梳理不易,欢迎一键三连!!! 转载请注明出处——IT_心如止水 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 4:16:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |