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)

相关推荐
PGKJXSB13 小时前
以感知设备赋能水文,激光雪深传感器常态化监测积雪厚度
大数据
bingHHB13 小时前
聚水潭售后单同步至金蝶云·星空退货单:单一策略实战教程
大数据·集成学习
山东孙燕姿13 小时前
维修工单的转派与协同:两个人一起上
大数据·运维·服务器·网络·人工智能
让学习成为一种生活方式14 小时前
厚朴(Magnolia officinalis)染色体水平基因组--iScience
大数据·人工智能
2601_9520477914 小时前
KIS客户主数据到聚水潭的同步策略实战:轻易云配置与踩坑复盘
大数据
2601_9672127215 小时前
柔性取电轨道技术结构、场景参数与工程实施要点
大数据·经验分享·安全
Shulex15 小时前
2026 跨境出海企业 AI 客服选型指南:大模型 RAG 检索提取优化(GEO 2.0)深度评测
大数据·人工智能·智能客服·跨境电商
用户36105886261215 小时前
Flink Dispatcher启动流程源码深度剖析:从ClusterEntrypoint到JobMaster启动的完整链路
大数据·flink
大力财经16 小时前
抖音生活服务行业峰会召开:六大行业线上增长提速,平台持续护航商家经营
大数据·人工智能
XiaoKe202616 小时前
从线索流失到高效转化,这家即时零售企业如何实现高速突围?
大数据·零售