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.
相关推荐
uup13 小时前
RabbitMQ 在 Java 应用中内存溢出问题
java·rabbitmq
Han.miracle13 小时前
JavaEE--网络编程 传输层 (一) UDP TCP特点
运维·服务器·网络·java-ee·三次握手·四次挥手·超时重传
urkay-13 小时前
Android 全局修改设备的语言设置
android·xml·java·kotlin·iphone
编程修仙13 小时前
第四篇 封装SqlSessionFactory
java·数据库·mybatis
I · T · LUCKYBOOM13 小时前
18.通过密钥免密访问目标服务器,脚本运行过程中不需要额外交互
linux·运维·服务器
程序员西西13 小时前
SpringBoot 隐式参数注入:告别重复代码,让 Controller 更优雅
java·后端
深圳市恒讯科技13 小时前
高防服务器支持哪些协议和端口防护?
运维·服务器·网络
Tao____14 小时前
国产开源物联网平台
java·物联网·mqtt·iot·设备对接
uup14 小时前
RabbitMQ 在 Java 应用中消费者无法连接问题
java·rabbitmq