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)

相关推荐
大厂技术总监下海几秒前
为何顶尖科技公司都依赖它?解码 Protocol Buffers 背后的高性能、可演进设计模式
分布式·设计模式
彬匠科技BinJiang_tech9 分钟前
对账太耗时?跨境ERP实现物流商/供应商自动化对账
大数据·运维·自动化
weilaikeqi111114 分钟前
宠物护理技术革命:“微米银”正在改写传统抗菌方式?
大数据·人工智能·宠物
喂完待续19 分钟前
【Big Data】2025年大数据技术演进与产业变革
大数据·ai·数据安全·big data·年度总结·微博之星
liangshanbo121519 分钟前
从“造智能体”到“赋能技能”:大模型应用范式的战略大转向
大数据·人工智能
阿坤带你走近大数据27 分钟前
Elasticsearch(ES)的基本概念、架构及基本使用介绍
大数据·elasticsearch
阿标在干嘛28 分钟前
【功能全景实测】科力辰科技查新网:它如何试图覆盖科研业务全链条?
大数据·人工智能·科技
Elastic 中国社区官方博客44 分钟前
使用 Elasticsearch 中的结构化输出创建可靠的 agents
大数据·人工智能·elk·elasticsearch·搜索引擎·ai·全文检索
AC赳赳老秦1 小时前
跨境电商决胜之道:基于深度数据分析的选品策略与库存优化
大数据·开发语言·人工智能·python·php·跨境电商·deepseek
zhangkaixuan4561 小时前
Paimon Action Jar 实现机制分析
java·大数据·flink·paimon·datalake