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

Databricks Spark Submit使用--py-files时多文件加载失败问题

解决Spark Submit多文件加载失败及ModuleNotFound问题

首先明确:Spark的--py-files参数完全支持同时指定多个跨路径的文件,不存在只读取前两个的限制,你的问题大概率出在参数格式、路径权限或者模块引用上。

以下是具体排查和解决方法:

  • 检查--py-files的参数分隔格式
    多个文件必须用逗号(,)无空格分隔,正确写法示例:

    --py-files s3://bucket/path/file1.py,s3://other-bucket/path/common.py,s3://bucket/path/main.py
    

    如果用空格分隔,Spark会把空格后的内容识别为独立参数,而非--py-files的一部分,直接导致后面的文件被忽略,日志自然只显示前两个。

  • 验证common.py的S3路径权限
    确认Databricks集群的IAM角色有该S3路径的读取权限,包括桶策略和对象权限。如果权限不足,Spark会静默跳过该文件加载,日志里不会显示,但运行时就会报模块找不到。

  • 检查模块引用方式
    确保main.py里引用common的写法是import common,不要带路径前缀(比如from s3.path import common)。因为--py-files中的文件会被自动加入Python的sys.path,直接用模块名引用即可。

  • 核对完整的Spark Submit命令
    在Databricks任务日志里找到完整的Spark Submit命令行,确认--py-files参数是否完整包含三个文件。有时候配置界面的输入可能因为换行、空格被截断,导致参数不完整。

  • 临时打包测试定位问题
    把三个文件打包成一个zip(注意zip内部不要嵌套多余目录),用--py-files指定这个zip。如果运行正常,说明是多文件参数格式的问题;如果还是报错,就重点排查common.py的内容或路径权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:42:39