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)

相关推荐
Elastic 中国社区官方博客6 分钟前
使用 Elasticsearch open inference API 对 OpenAI chat completions 进行支持
大数据·elasticsearch·搜索引擎·全文检索·jenkins
xfan_me1 小时前
全国今日油价 API-油价查询-油价查询接口
大数据·人工智能·信息可视化
大任视点1 小时前
武林问道承古韵 形意寻根铸武魂 纪录片《武林问道•形意寻根》山西溯源拍摄完成
大数据·业界资讯
科里 Coralyx1 小时前
评测凭什么成为模型护城河:Agent评测的跨厂机制分析
大数据·人工智能·ai
东方护航数据恢复(深圳)1 小时前
RAID5单盘故障后阵列状态分析与重建风险评估_东方护航数据恢复深圳店
大数据·数据库
武汉唯众智创1 小时前
师资弱、设备差、课程旧?2026 大数据实训室一体化建设解决方案
大数据·大数据实训室·大数据实验室建设方案·职校大数据实训室解决方案
知识燃料2 小时前
企业级生成式 AI 云平台推荐,哪些平台更适合从 Agent 原型走向生产?
大数据·人工智能
A15362552 小时前
2026 电商物流系统推荐:多渠道仓配履约数字化选型指南
大数据·数据库·人工智能
超智算科技2 小时前
超智算领衔协办“NVIDIA创业企业展示·西安站”,全栈AI服务赋能行业生态协同发展
大数据·网络·人工智能·物联网·百度