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

PySpark运行报错:Worker与Driver端Python版本不一致求助

解决PySpark Driver与Worker Python版本不匹配问题

你遇到的问题是PySpark的Driver端Python版本(3.5)和Worker端(2.7)不一致,导致任务执行失败。从报错信息里能明确看到核心冲突:

Exception: Python in worker has different version 2.7 than that in driver 3.5, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.

核心原因

PySpark要求Driver和Worker使用完全相同的Python小版本(比如都是3.5,不能一个3.5一个2.7),你的环境里Worker默认调用了Python2.7,而Driver用的是Python3.5,两者版本不兼容导致任务崩溃。

具体解决步骤

1. 修正环境变量配置

你需要在.bashrc里明确指定PYSPARK_PYTHON和PYSPARK_DRIVER_PYTHON两个关键变量,强制Worker和Driver都使用Python3:

  • 先通过终端命令which python3找到你的Python3安装路径,比如输出可能是/usr/bin/python3
  • 打开.bashrc文件,替换原有的Spark相关配置为以下内容:
    export SPARK_HOME=/opt/spark
    # 指定PySpark全局使用的Python版本
    export PYSPARK_PYTHON=/usr/bin/python3
    export PYSPARK_DRIVER_PYTHON=/usr/bin/python3
    # 修正PYTHONPATH(原配置的python3路径错误,Spark的Python库在python目录下)
    export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-*.zip:$PYTHONPATH
    
  • 执行source ~/.bashrc让新配置立即生效

2. 验证配置有效性

  • 在终端输入以下命令,确认变量已正确设置:
    echo $PYSPARK_PYTHON
    echo $PYSPARK_DRIVER_PYTHON
    
    输出应该和你指定的Python3路径完全一致。
  • 重新运行你的PySpark代码,rdd.collect()应该能正常执行了。

额外提醒

你原来的PYTHONPATH配置用了$SPARK_HOME/python3,这是错误的——Spark的Python依赖库默认存放在$SPARK_HOME/python目录下,所以必须修正为上述配置,确保PySpark能正确加载所需的依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:15:37