Spark窗口函数

1、 Spark中的窗口函数

窗口就是单纯在行后面加一个列

可以套多个窗口函数,但彼此之间不能相互引用,是独立的

窗口函数会产生shuffle

over就是用来划分窗口的

(1) 分组聚合里面的函数,基本都可以用于窗口函数

count 、 avg 、 max 、 min

DENSE_RANK : 连续排序 11122333

RANK : 跳跃排名 11144666

(2) 窗口函数 排序和不排序的区别 :

不排序 -- 全局结果,同一个组内每一条数据后面的值都一样

排序 -- 累计, 第三条数据是第一条和第二条数据的和

(3) 凡是通过自己和自己关联的, 都是可以通过窗口实现的

sum(case when round(r/2)=zhongweishu then sco else 0 end) -- 下标等于中位数返回true,做sum(sco)求和 , 否则不求和

2、 Spark -- DF与RDD之间的相互转换

创建好 SparkSession 之后可以直接获取 SparkContext

DF比RDD多了列名和列类型

(1) RDD 转换成 DF -- studentRDD.toDF

需要注意字段的数量和顺序、 需要导入隐式转换

(2) DF 转换成 RDD -- studentDF.rdd

3、 Spark 自定义函数

所有可以写sql的框架都可以自定义函数

两种情况 : 用在DSL、 用在sql

(1) 定义自定义函数

val ageAdd: UserDefinedFunction = udf((age: Int) => {

age + 1

})

(2) DSL 可以直接调用 自定义函数

(3) 需要自定义函数, 并注册 才能在sql中使用

// 注册自定义函数

spark.udf.register("ageAdd", ageAdd)

相关推荐
听我哔哔12 小时前
考研党实测 GPT 刷题解析教程:难题分步讲解,整理笔记一键导出
大数据·人工智能
2601_9547064912 小时前
云手机基础认知、环境配置与自动化实操代码
大数据·智能手机
王小王-12312 小时前
基于 Hadoop 的心脏病分析可视化与风险预测系统
大数据·hadoop·分布式·心脏病预测系统·疾病预测·冠心病风险预测
LB96781612 小时前
外贸企业GEO优化怎么做?独立站AI搜索引擎排名策略详解
大数据·人工智能·搜索引擎·外贸独立站·ai建站·geo优化·ai搜索排名
terry60012 小时前
2026企业5G短信服务商选型全指南:通道、架构、服务全维度评估标准
大数据·人工智能·5g·web安全·信息与通信·数据库架构
kjmkq12 小时前
2026国内GEO优化服务商行业现状与选型分析
大数据·人工智能
workflower1 天前
使用大语言模型处理用户需求
大数据·人工智能·设计模式·重构·动态规划
AC赳赳老秦1 天前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
JiaHao汤1 天前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
keke.shengfengpolang1 天前
数据科学与大数据技术和大数据管理与应用怎么抉择?
大数据