You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark代码仅2个Action却生成3个Job的原因解析

为什么你的PySpark代码在Databricks中生成了3个Job?

你的代码里看似只有display这一个显式Action,但实际触发3个Job的原因是Databricks和Spark的内部机制导致的,具体如下:

  • 第一个Job:Schema推断扫描
    当你执行spark.read.csv时,即便指定了header=true,Spark仍会启动一个Job来扫描文件的部分内容(默认前1000行),目的是自动推断各列的初始数据类型。这一步是Spark读取无预定义Schema的文件时的默认行为,确保后续的转换操作(比如cast转换salary类型)能基于正确的列结构执行。

  • 第二个Job:统计信息收集
    Databricks的display函数在展示数据表格前,会自动触发一个额外的Job来收集DataFrame的基础统计信息(比如总行数、列的分布情况),这些信息会显示在界面的统计面板中,方便你快速了解数据概况。

  • 第三个Job:实际计算执行
    这是对应你代码中过滤、聚合逻辑的核心Job。它会完整执行从读取文件、过滤薪资大于30000的行,到按work_year分组求和的整个计算流程,最终生成用于展示的结果数据。

需要注意的是,在本地模式或非Databricks环境中,可能不会出现第二个统计信息收集的Job,这是Databricks为提升用户体验额外添加的功能。

内容的提问来源于stack exchange,提问作者AzSurya Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:43:22