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)

相关推荐
acrel713 分钟前
高速公路分布式光伏并网电能质量与安全保护方案应用
分布式·安全
我的愿望是成为富婆18 分钟前
2027校招AI产品经理能力清单:数据科学与大数据技术专业如何准备
大数据·人工智能·产品经理
腾讯云大数据27 分钟前
本体立骨架,语义供刻度——DataBuddy对企业AI语义架构的一次完整回答
大数据·人工智能·架构·云计算·腾讯云
武汉星际互动31 分钟前
从“一件事”到“一类事”,政务服务改革的“下一站”在哪里?
大数据·人工智能·政务
Allen_LVyingbo39 分钟前
生命过程的分子语言:AI 解析范式与场景应用全景研究(上)
大数据·人工智能·知识图谱·健康医疗·数据库开发·数据库架构
KKKlucifer42 分钟前
国内数据分类分级平台的路线分化与落地边界
大数据·人工智能·分类
todoitbo1 小时前
大数据平台如何选时序数据库:用业务 SQL 验证查询、留存和 Spark 链路
大数据·sql·时序数据库
QYR_111 小时前
全球半导体离子注入机用零部件市场分析:2032年规模有望突破8亿美元,精密制造与高纯材料驱动行业增长
大数据·人工智能
程序员IT行业1 小时前
电子厂多层级BOM批量导入技术方案|轻量化进销存物料配方落地与迭代更新实现
大数据
Q26433650231 小时前
【有源码】基于K-Means算法的航空客户行为分群及异常预订识别研究-基于大数据的航空客户预订行为多维分析与可视化大屏设计
大数据·人工智能·机器学习·数据挖掘·数据分析·spark·kmeans