Spark常用算子

转换算子

value类型

算子名称 作用
Map映射 a->b
flatMap扁平化 [[a,b],[c,d]] -> [a,b,c,d] ,二维变一维
groupBy分组 [1,2,3,4] ->[[1,3],[2,4] ],一维变二维
filter过滤 [1,2,3,4] -> [2,4] 符合条件进入,不符合去掉
distinct去重 [1,1,2,2] -> [1,2] 去重过程中存在shuffle
sortBy排序 [1,3,2] -> [1,2,3] 排序

使用localhost:4040可以查看IDEA代码中算子的执行情况,可以使用Thread.sleep(10000)来睡眠一会,保证可以打开该网页。

key-value类型

算子名称 作用
mapValues 对value进行映射
groupByKey 对数据进行汇总,可以设置分区数量或分区器
reduceByKey 对数据进行汇总计算,底层会打散重分区,增加了预聚合
sortByKey 对Key进行排序,底层是Range分区
reduceByKey不能用于减法和除法运算,只能用于加法和乘法计算。

两种分区

  1. Hash分区:极端情况有可能导致数据倾斜,适合用于聚合。
  2. Range分区:尽量保证每个分区中数据量均匀,适合用于排序。使用Range分区器的算子有groupByKey, sortBy, cogroup.
相关推荐
Cosmoshhhyyy3 分钟前
LeetCode:3297. 统计重新排列后包含另一个字符串的子字符串数目 I(滑动窗口 Java)
java·leetcode
∝请叫*我简单先生10 分钟前
Java 如何传参xml调用接口获取数据
xml·java·后端·传参xml调用接口
Json____18 分钟前
2. 使用springboot做一个音乐播放器软件项目【框架搭建与配置文件】
java·spring boot·后端·音乐播放器·音乐播放器项目·java项目练习·springboot练习
嘤国大力士25 分钟前
银河麒麟服务器操作系统桌面任务栏网络图标消失问题
服务器·网络
学是为了不学25 分钟前
Eureka缓存机制
java·spring cloud·缓存
V+zmm1013428 分钟前
英语互助小程序springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计
行者张良29 分钟前
解决:离线部署Docker容器(使用Docker现有容器生成镜像,将镜像打包成tar并发布到离线服务器中)
服务器·docker·容器
学不下了30 分钟前
服务器/电脑与代码仓gitlab/github免密连接
服务器·gitlab·github
s_little_monster39 分钟前
【Linux】Linux常见指令(上)
linux·运维·服务器·经验分享·笔记·学习·centos
Mr.JiuFen40 分钟前
【Tag name expected】-在mybatis-XML映射文件中无法使用小于号<的解决办法
xml·java·mybatis