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

PySpark无法识别Python环境路径,请求解决文件不存在错误

解决PySpark提交任务时找不到打包Python环境路径的问题

问题场景

按照Spark官方文档打包Python环境并上传至HDFS,提交任务时通过--archives参数指定环境包,但任务执行时提示无法找到/opt/miniconda3/envs/ei/bin/python3路径,报错No such file or directory。

核心原因

使用--archives hdfs:///.../ei.tar.gz#miniconda3参数时,Spark会将压缩包解压至executor节点的当前工作目录下的miniconda3文件夹,而非系统的/opt目录。原配置中指定的绝对路径/opt/miniconda3/envs/ei/bin/python3在executor节点上不存在,导致报错。

解决方案

1. 修改Python环境路径为相对路径

调整spark.pyspark.python配置,指向解压后的相对路径:

  • 在run_job.sh中,将spark.pyspark.python的配置改为./miniconda3/envs/ei/bin/python3(或使用Spark占位符{miniconda3}/envs/ei/bin/python3)
  • client模式下,driver运行在本地机器,spark.pyspark.driver.python可保留本地已有的环境路径(如/opt/miniconda3/envs/ei/bin/python3)

修改后的run_job.sh关键部分:

spark3-submit -v \
--master yarn \
--deploy-mode client \
# ...其他配置项...
--conf spark.pyspark.python=./miniconda3/envs/ei/bin/python3 \
--conf spark.pyspark.driver.python=/opt/miniconda3/envs/ei/bin/python3 \
--archives hdfs:///user/svc-edl_ei_dld/outfront/pythonLibraries/ei.tar.gz#miniconda3 \
# ...其他参数...

2. 验证环境包的目录结构

确保打包的ei.tar.gz解压后,内部路径为miniconda3/envs/ei/bin/python3:

  • 打包时需进入/opt目录执行命令:tar -czf ei.tar.gz miniconda3,避免压缩包内出现多余的opt层级

3. 同步调整job.sh中的环境变量

若driver端也需要使用打包的环境(例如cluster模式),需修改job.sh中的PYSPARK_PYTHON:

export PYSPARK_PYTHON=./miniconda3/envs/ei/bin/python3
export PYSPARK_DRIVER_PYTHON=/opt/miniconda3/envs/ei/bin/python3  # client模式保留本地路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:03:16