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())
相关推荐
冯RI375II694871 小时前
CPC认证的流程是怎样的呢
大数据
打码人的日常分享2 小时前
数据中心信息中心信息科管理制度
大数据·运维·网络·云计算·制造
AI周红伟3 小时前
周红伟:信创大模型企业级部署实操,Qwen3.5 昇腾企业级部署案例实操
大数据·人工智能·大模型·智能体
SickeyLee4 小时前
AI产品经理-大模型的智力之源与能力边界
大数据·人工智能
智海观潮4 小时前
Vanna-ai - 让自然语言对话SQL数据库成为可能,支持多种数据库,大模型和向量存储
大数据·nlp·aigc
阿甘编程点滴4 小时前
2026年适合企业产品介绍可商用的9款解说配音软件
大数据
AI周红伟6 小时前
周红伟:Qwen3.5-Plus - 企业级部署案例实操,Qwen3.5 LLM,包括 Qwen3.5-397B-A17B
大数据·人工智能·大模型·智能体
历程里程碑7 小时前
普通数组---合并区间
java·大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎
T06205148 小时前
【面板数据】A股上市公司重污染行业分组数据集-含参考文献 (2000-2024年)
大数据
cm_chenmin8 小时前
Cursor最佳实践之三:MCP
大数据·elasticsearch·搜索引擎