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)

相关推荐
天行健,君子而铎6 分钟前
自适应分类·高准确率·可视化易用——运营商数据分类分级解决方案
大数据·分类
霸道流氓气质16 分钟前
分布式追踪与 RequestId 传播完全指南
分布式
root_1018 分钟前
kylin-v10-sp3-x86系统安装vmware-17
大数据·chrome·kylin
小t说说24 分钟前
技术观察:从职坐标看一家IT培训机构的课程体系与AI教学工具
大数据·人工智能
超级赛博搬砖工25 分钟前
SEO代理解析:成功搜索引擎抓取你需要了解的事项
大数据·运维·服务器·网络
babe小鑫26 分钟前
大数据专业课难度高,学数据分析的价值
大数据·数据挖掘·数据分析
cheems952729 分钟前
[RabbitMQ高级特性] 消息确认机制:从 Ready / Unacked 到 basicAck、basicReject、basicNack 的底层拆解
分布式·rabbitmq·ruby
terry60032 分钟前
5G视频短信服务商选型全攻略:通道资源、架构能力与成本评估2026最新标准
大数据·人工智能·5g·json·asp.net·信息与通信·数据库架构
旗讯数字38 分钟前
旗讯 OCR 工业手写识别解决方案|破解车间纸质表单录入难题,加速生产数字化转型
大数据·ocr
会Tk矩阵群控的小木41 分钟前
抖音电商矩阵系统技术方案:多店铺账号运营管理全模块实现详解
大数据