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.
相关推荐
apihz20 小时前
全球IP归属地查询免费API详细指南
android·服务器·网络·网络协议·tcp/ip
Brookty20 小时前
Java文件操作系列(一):从基础概念到File类核心方法
java·学习·java-ee·文件io
小鸡脚来咯20 小时前
java泛型详解
java·开发语言
爱笑的眼睛1120 小时前
JAX 函数变换:超越传统自动微分的编程范式革命
java·人工智能·python·ai
liuyouzhang20 小时前
备忘-国密解密算法
java·开发语言
学编程就要猛20 小时前
算法:1.移动零
java·算法
雨落秋垣20 小时前
五台腾讯云轻量服务器高可用架构方案(宝塔面板+宝塔WAF)
服务器·架构·腾讯云
开开心心_Every20 小时前
优化C盘存储:自定义软件文档保存路径工具
java·网络·数据库·typescript·word·asp.net·excel
多则惑少则明20 小时前
AI大模型实用(八)Java快速实现智能体整理(使用LangChain4j-agentic来进行情感分析/分类)
java·人工智能·spring ai·langchain4j
落羽的落羽20 小时前
【C++】深入浅出“图”——图的遍历与最小生成树算法
linux·服务器·c++·人工智能·算法·机器学习·深度优先