分享好友 最新动态首页 最新动态分类 切换频道
hive数据排序、和窗口函数
2024-12-27 01:07

Order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序,即使设置了多个Reduce,程序依然会按照一个Reduce进行排序)。Order by全局排序,又一个缺点,就是只有一个Reducer,会导致数据规模较大是,消耗较长的计算时间。

案例演示

 
 
 

sort by 不是全局排序,其在数据进行reducer前完成排序。使用sort by是可以指定执行的reduce的个数,对输出的数据再执行归并排序,即可得到全部结果。

案例演示

 
 
 

distribute by是控制在map端如何拆分数据给reduce端的。hive会根据distribute by 后面列,对应reducer的个数进行并发,默认是采用hash算法。sort by为每个reduce产生一个排序文件。一般情况下,distribute by经常和sort by配合使用。

案例演示

 
 
 

cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是倒叙排序,不能指定排序规则。

GROUP BY用于分组

  • Hive基本内置聚合函数与GROUP BY一起使用
  • 如果没有指定GROUP BY子句,则默认聚合整个表
  • 除聚合函数外,所选的其他列也必须包含在GROUP BY中
  • GROUP BY支持使用CASE WHEN或表达式

HAVING:对GROUP BY聚合结果的条件过滤

  • 可以避免在GROUP BY之后使用子查询
  • HAVING之后可以使用表达式,但不建议使用,性能比较差

基础聚合

基础聚合函数

  • max, min, count, sum, avg
    • max(distinct col1)、avg(col2)等
  • collect_set, collect_list:返回每个组列中的对象集/列表

注意事项

  • 一般与GROUP BY一起使用(不一起使用就会都查询显示出来
  • 可应用于列或表达式
  • 对NULL的count聚合为0
    • select count(null) = 0

窗口函数是一组特殊函数

  • 扫描多个输入行来计算每个输出值,为每行数据生成一行结果
  • 可以通过窗口函数来实现复杂的计算和聚合

窗口函数语法

  • PARTITION BY类似于GROUP BY,未指定则按整个结果集
  • 只有指定ORDER BY子句之后才能进行窗口定义
  • 可同时使用多个窗口函数
  • 过滤窗口函数计算结果必须在外面一层

窗口函数功能划分

排序,聚合,分析

ROW_NUMBER()
对所有数值输出不同的序号,序号唯一连续

案例演示

 
 

RANK()
对相同数值,输出相同的序号,下一个序号跳过(1,1,3

 
 

DENSE_RANK()
对相同数值,输出相同的序号,下一个序号连续(1,1,2

 
 
 

PERCENT_RANK()
(目前排名- 1)/(总行数- 1),值相对于一组值的百分比排名

 
 
 
  • COUNT()
    • 计数,可以和DISTINCT一起用(DISTINCT 去重
  • SUM():求和
  • AVG():平均值
  • MAX()/MIN(): 最大/小值
  • 从Hive 2.1.0开始在OVER子句中支持聚合函数
  • CUME_DIST
    小于等于当前值的行数/分组内总行数
 
 
  • LEAD/LAG(col,n)
    某一列进行往前/后第n行值(n可选,默认为1)
 
 
  • FIRST_VALUE
    对该列到目前为止的首个值
 
 
  • LAST_VALUE
    到目前行为止的最后一个值
 
 
 
  • 窗口定义由[<window_clause>]子句描述

    • 用于进一步细分结果并应用分析函数
  • 支持两类窗口定义

    • 行类型窗口
    • 范围类型窗口
  • RANK、NTILE、DENSE_RANK、CUME_DIST、PERCENT_RANK、LEAD、LAG和ROW_NUMBER函数不支持与窗口子句一起使用

最新文章
天风证券:AI应用推动SOC市场增长,智能终端需求激增
  财中社12月12日电 发布行业点评报告,报告指出2024年12月19日,火山引擎冬季FORCE原动力大会的开发者论坛将重磅开启,聚焦火山引擎在大模型开发、应用与落地方面的实践;包含从火山方舟平台背后的技术理念和原理,到豆包MarsCode、扣子
香港最准的100%肖一肖||内容分析使用落实0.421432602
香港最准的100%肖一肖分析——揭秘生肖预测的奥秘在充满神秘色彩的香港文化中,生肖预测一直备受关注,肖一肖作为生肖预测的一种形式,更是受到广大市民的追捧,本文将结合关键词“香港最准的100%肖一肖”,对肖一肖预测进行深入分析,并探
赵旭与李晴晴情感纠葛最新章节精彩阅读分享
在这个充满浪漫和波折的故事中,赵旭与李晴晴的感情经历了一系列考验。最新章节中,两人之间的情感愈发复杂,彼此的誓言和生活中的挑战交织在一起。读者在这一部分将感受到他们内心的挣扎与成长,仿佛能够身临其境,体验到那份深刻的情感。
四川省药品监督管理局 关于下属事业单位2024年下半年公开招聘工作人员笔试总成绩、岗位排名及面试资格审查公告进入阅读模式
根据《四川省药品监督管理局关于下属事业单位2024年下半年公开招聘工作人员公告》(以下简称公告)规定,现将下属事业单位2024年下半年公开招聘工作人员笔试总成绩、岗位排名及面试资格审查有关事宜公告如下。一、笔试总成绩及岗位排名情况详
商务TG:@mogushangwutv在数字化时代,拥有一个网站已经成为企业、组织或个人展示自身形象、分享信息、进行交流的重要平台,而建站程序则是实现这一目标的关键工具,本文将全面解析建站程序的相关知识,从基础到高级,帮助您更好地理解和应
随时随地看手机快速现场直播,轻松获取最新赛事资讯!手机快速现场直播
手机扫彩票二维码是一种方便快捷的购买彩票方式。确保您的手机上安装了二维码扫描应用,或直接使用手机自带的相机功能。在购买彩票时,销售点或官方网站会提供相应的彩票二维码。打开应用或相机对准二维码,系统会自动识别并弹出相关信息。
热搜排行榜前三!黑龙江哪家不孕不育医院比较正规“近期”黑龙江不孕不育咨询在线咨询
:黑龙江省中医研究院、哈尔滨医科大学附属第一医院、黑龙江省医院、哈尔滨市第二医院以及哈尔滨市生殖健康医院等。1. 黑龙江省中医研究院:该医院专注于传统中医疗法,擅长运用中药调理内分泌系统,设有妇科、男科等多个科室,能够对不孕
骁龙870机型还值不值得选?这四款实力依旧很强,或可继续战三年
当新款处理器出炉的时候,有很多老款机型的热度都在逐渐下跌,但是从性能方面来说,即使是老款处理器,依旧非常的能打,而且新机发布之后,老机型的价格也会走低,那么从性价比的角度来说,依旧有着不错的使用体验。至于拍照方面,6400万主
网站赚钱攻略,介绍网络世界的财富密码
随着互联网的飞速发展,越来越多的人投身于建设,希望通过网站实现财富增值。如何才能在众多网站中脱颖而出,实现盈利呢?本文将为您揭秘网络世界的财富密码,助您轻松赚钱。一、合理布局,提高网站权重1. 关键词研究:我们要明确自己的网
直播APP如何快速吸引用户?推广运营策略揭秘
直播APP如何快速吸引用户,关键在于制定一套有效的推广运营策略。以下是一些关键策略揭秘:一、明确目标受众深入调研:通过市场调研和数据分析,明确目标受众的年龄、性别、兴趣爱好、消费习惯等特征。精准定位:根据目标受众的特点,为直
相关文章
推荐文章
发表评论
0评