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

spark-submit运行报Missing application resource及找不到构建目录问题咨询

问题根因
  • java.lang.IllegalArgumentException: Missing application resource报错直接原因:spark-submit命令参数使用错误,--py-files为依赖文件传递参数,仅用于分发Python依赖到集群工作节点,不能代替主应用入口文件的位置参数,当前命令未在所有参数末尾指定主应用资源,Spark无法识别需要执行的应用入口。
  • java.lang.IllegalStateException: Cannot find any build directories报错直接原因:手动拼接Java命令直接调用Spark Launcher类属于非标准执行方式,未传递Spark部署所需的环境标识参数,Launcher无法匹配当前Spark的编译版本与目录结构,该问题属于非规范操作导致的预期外错误,无需优先排查。
  • 潜在风险:当前环境变量中配置的py4j版本为0.10.3,仅适配Spark 2.1.x版本,若实际部署的Spark版本与该版本不匹配,后续运行会抛出类加载异常。
解决方案
  • 修正spark-submit命令格式,将主应用文件作为位置参数放在所有参数末尾:
bash -x $SPARK_HOME/bin/spark-submit --master spark://analytics-seed:7077 $SPARK_HOME/hello_world.py

如果主应用存在额外的依赖Python文件需要分发,再补充--py-files参数传递依赖,示例如下:

# 示例:主应用依赖utils.py,通过--py-files传递依赖,末尾指定主应用入口
bash -x $SPARK_HOME/bin/spark-submit --master spark://analytics-seed:7077 --py-files $SPARK_HOME/utils.py $SPARK_HOME/hello_world.py
  • 校验py4j版本匹配性:进入$SPARK_HOME/python/lib目录,查看实际存在的py4j压缩包文件名,将环境变量中配置的py4j路径替换为实际路径后,重新source环境变量配置文件即可。
  • 若修正命令后仍有报错,可先通过local模式验证本地环境有效性,排除集群连接类问题:
$SPARK_HOME/bin/spark-submit --master local[1] $SPARK_HOME/hello_world.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:06:03