Spark DataFrame常见的Transformation和Actions详解

1. DataFrame 操作的类型划分及其常见方法

DataFrame 操作的类型划分及其常见方法:
不触发Action
触发Action
<<abstract>>
DataFrame操作
<<lazy>>
转换操作
+select()
+filter()
+where()
+groupBy()
+agg()
+orderBy()
+sort()
+distinct()
+drop()
+withColumn()
+withColumnRenamed()
+join()
+union()
+sample()
+repartition()
+coalesce()
+limit()
+rollup()
+cube()
+pivot()
<<eager>>
动作操作
+show()
+collect()
+count()
+take()
+head()
+first()
+foreach()
+save()
+write()
+toPandas()
+toJSON()
+toLocalIterator()
+printSchema()
+explain()
+cache()
+persist()

2. 表格表示

下表列出了常见的 DataFrame 操作及其是否触发 Action:

操作名称 类型 是否触发 Action 描述
select() 转换 选择指定列,返回新的 DataFrame
filter() / where() 转换 根据条件过滤行
groupBy() 转换 按指定列分组
agg() 转换 执行聚合操作
orderBy() / sort() 转换 按指定列排序
distinct() 转换 去重操作
drop() 转换 删除指定列
withColumn() 转换 添加或替换列
withColumnRenamed() 转换 重命名列
join() 转换 连接两个 DataFrame
union() 转换 合并两个 DataFrame
sample() 转换 随机采样
repartition() 转换 重新分区
coalesce() 转换 减少分区数
limit() 转换 限制返回行数
rollup() / cube() 转换 多维聚合
pivot() 转换 数据透视
show() 动作 显示前 n 行数据
collect() 动作 将所有数据收集到驱动程序
count() 动作 统计行数
take() 动作 取前 n 行数据
head() / first() 动作 取第一行或前几行数据
foreach() 动作 对每行应用函数
save() / write() 动作 将数据写入外部存储
toPandas() 动作 转换为 Pandas DataFrame
toJSON() 动作 转换为 JSON 格式
toLocalIterator() 动作 返回本地迭代器
printSchema() 动作 打印 schema 信息
explain() 动作 显示执行计划
cache() / persist() 动作 缓存 DataFrame

关键区别

  1. 转换操作(Transformations)

    • 惰性执行,不立即计算
    • 返回新的 DataFrame
    • 构建逻辑执行计划(DAG)
    • 需要动作操作触发实际执行
  2. 动作操作(Actions)

    • 立即触发计算
    • 返回具体结果或执行输出。注:某些操作如 printSchema()explain() 虽然不返回计算结果,但仍属于动作操作,因为它们会触发 Spark 分析逻辑计划并返回信息。
    • 执行所有累积的转换操作
    • 可能涉及数据移动(如 collect())
相关推荐
ezreal_pan16 分钟前
Kafka Docker 部署持久化避坑指南:解决重启后 Cluster ID 不匹配问题
分布式·docker·zookeeper·容器·kafka·devops
益企联工程项目管理软件23 分钟前
2026工程管理软件推荐:7款工具助力工程项目数字化升级!
大数据·人工智能·云原生·项目管理·制造
事变天下43 分钟前
第四届超声医学青年学术会议,推出全新启元AI超声生态
大数据·人工智能
AI科技星1 小时前
ELN 升级:π 级数自动生成器全域数理架构
大数据·人工智能·python·算法·金融
@insist1231 小时前
信息安全工程师-密码学专题(下):构建可信网络空间的核心机制
java·大数据·密码学·软考·信息安全工程师·软件水平考试
胡耀超1 小时前
从逻辑思维到方法论(DMBOK2)并以知识图谱实践指导:构建企业级思维与执行框架
大数据·人工智能·dama·知识图谱·方法论·逻辑学·思维框架
小张小张爱学习1 小时前
Kafka面试题
分布式·kafka
Irene19912 小时前
大数据开发入门 - 核心SQL英文单词本
大数据·英语
heiqizero2 小时前
Spark RDD转换算子01
spark
奇思智算2 小时前
小白AI创作GPU算力平台测评:多平台对比与选择指南
大数据·人工智能·gpu算力·智星云·gpu算力租用