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.
相关推荐
小画家~8 分钟前
第二十八:golang Time.time 时间格式返回定义结构体
java·前端·golang
西岭千秋雪_14 分钟前
Kafka安装和使用
java·分布式·kafka·java-zookeeper
青柚~21 分钟前
【鲲鹏服务器麒麟系统arm架构部署docker】
服务器·arm开发·docker·架构
從南走到北32 分钟前
JAVA国际版打车APP打车顺风车滴滴车跑腿APP源码Android+IOS+H5
android·java·ios
Java天梯之路33 分钟前
如何接收前端参数
java·后端
独自破碎E34 分钟前
从括号匹配到字符串解码:递归思想的巧妙应用
android·java·开发语言
人工智能训练34 分钟前
Ubuntu中如何进入root用户
linux·运维·服务器·人工智能·ubuntu·ai编程·root
tianshiyeben36 分钟前
WGCLOUD监控系统使用指南 - 告警消息整理完整版
linux·运维·服务器·系统安全·zabbix
Unlyrical39 分钟前
splice, io_uring_prep_splice 调用(无效参数)
linux·服务器·c++·unix
牛奶咖啡1343 分钟前
银河麒麟高级服务器系统(V11)的安装部署实操保姆级教程
服务器·银河麒麟高级服务器操作系统安装·银河麒麟高级服务器v11配置·设置基础软件仓库时出错·银河麒高级服务器系统的实操教程·生产级部署银河麒麟服务系统教程·linux系统的快速上手教程