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.
相关推荐
曼巴UE51 分钟前
UE C++ FName, FText 测试
服务器·c++·ue5
忍冬行者4 分钟前
通过ansible分发免密公钥、清理不再使用的公钥及验证公钥状态
linux·服务器·ansible
没有bug.的程序员6 分钟前
负载均衡的真正含义:从算法到架构的深度解析
java·jvm·算法·微服务·架构·负载均衡
yc_xym6 分钟前
[项目实践]言聚论坛(后端)
java·项目开发
多仔ヾ7 分钟前
Solon + EasyQuery + ElementPlus 实现后台管理系统之 08-权限认证优化
java
LambdaCat8 分钟前
如何用 Prompt 让 AI 主动发现设计问题
java·ai·ai编程
changlianzhifu18 分钟前
分账系统:从“资金管道“到“增长引擎“,重塑商业价值分配新范式
java·服务器·前端
吃喝不愁霸王餐APP开发者10 分钟前
Java应用对接美团开放平台API时的HTTPS双向认证与证书管理实践
java·开发语言·https
宠..11 分钟前
QButtonGroup
java·服务器·开发语言·前端·数据库·c++·qt
码luffyliu11 分钟前
Go 语言并发编程:为何它能甩开 Java 等传统后端语言?
java·后端·golang·go