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)

相关推荐
2601_962218471 分钟前
万象生鲜系统智能报表引擎技术为生鲜企业提供数字化经营分析能力
大数据·运维·微服务·云原生·架构
清 晨5 分钟前
跨境社媒内容定位怎么定?用受众、场景和语言建立账号主线
大数据·人工智能·跨境电商·营销策略
长谷深风1117 分钟前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
后焊加工装家7 分钟前
MS-KC716 激光精密焊线机实战应用指南
大数据·人工智能
数商云企26 分钟前
2026年西安电商智能客服开发选数商云企,技术稳交付快
大数据·python
m0_5474866626 分钟前
《大数据应用软件工程》全套PPT课件2026
大数据·软件工程
clz131452134 分钟前
风险特征系统 EPC 子系统:基于 Kafka 数据源与数据集配置的 Flink 指标清洗加工
分布式·flink·kafka
cspttty1 小时前
2026市场分析师校招能力模型:SQL、Excel、BI与业务分析
大数据·数据库
hfywmsj1 小时前
广州餐饮铺位招租决策模型:从流量评估到合同风控的技术拆解
大数据·人工智能·广州餐饮铺位招租
cc5725026531 小时前
2026 秋招直播运营岗位招聘 JD 拆解,数据指标与数据分析能力备考思路
大数据·数据挖掘·数据分析