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)

相关推荐
阿标在干嘛12 小时前
从数据碎片到决策引擎:政策快报背后的政策大数据架构逻辑
大数据·架构
上海云盾-小余12 小时前
全域网络安全防护思路:借助分布式节点抵御异常访问实战
分布式·安全·web安全
青山科技分享12 小时前
跨境电商如何做GEO,让商品被AI搜索推荐?
大数据·人工智能·跨境电商
字节跳动数据平台13 小时前
Lance Meetup 2026 · 上海站|正式开启报名!
大数据
汉拓3D数字化13 小时前
PDM到ERP的数据通道:四种方案的真实成本和落地难度
大数据·科技·系统·软件
GlobalInfo14 小时前
AI与另类数据融合,市场研究正在从“经验驱动”走向“数据智能”
大数据·网络·人工智能·ai
新点一讯14 小时前
聚焦流程数智升级,九科信息企业自动化智能体赋能高效运营
大数据·人工智能
美狐美颜sdk14 小时前
直播APP开发完整流程:需求规划、UI设计、功能开发、美颜SDK接入全解析
大数据·人工智能·音视频·美颜sdk·美颜api
小码哥哥15 小时前
当企业软件开始“越界“:从单一工具到超级集合的架构演进
大数据·人工智能·架构
其美杰布-富贵-李15 小时前
05 多分类任务中的评估指标:Binary Metrics 如何扩展到 Multi-class?
大数据·人工智能·分类