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.
相关推荐
想进大厂的小徐4 分钟前
Spring 容器启动与 Bean 创建流程
java·spring boot·spring
贺小涛4 分钟前
Linux网卡调度
linux·服务器·网络
dreamxian6 分钟前
微服务1 -- MybatisPlus
java·微服务·架构
糖炒栗子03268 分钟前
后端异步任务编排:基于 RabbitMQ 的“中控-工人”模式
java·rabbitmq
同聘云18 分钟前
阿里云国际站服务器浅谈DDOS攻击与防御
服务器·阿里云·ddos
SimonKing20 分钟前
紧急自查!Apifox被投毒,使用者速看:你的Git、SSH、云密钥可能已泄露
java·后端·程序员
Yupureki20 分钟前
《Linux系统编程》18.线程概念与控制
java·linux·服务器·c语言·jvm·c++
帅得不敢出门22 分钟前
Android Framework中调用由java编译成的jar接口
android·java·framework·jar
墨^O^35 分钟前
并发控制策略与分布式数据重排:锁机制、Redis 分片与 Spark Shuffle 简析
java·开发语言·c++·学习·spark