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

MacOS本地Jupyter运行PySpark执行collect时报Python版本不匹配错误如何解决

PySpark collect执行报错解决方案

错误原因

报错核心是PySpark驱动与工作节点的Python版本不兼容:当前Jupyter调用的驱动端Python版本为3.7,Spark默认调用的工作节点Python版本为3.6,PySpark要求两端Python次版本号必须一致才能正常运行。

解决步骤

1. 先获取你当前Jupyter使用的Python路径

在Jupyter的代码cell中执行以下代码,拿到准确的Python3.7路径:

import sys
print(sys.executable)

复制输出的路径,替换后面配置中的占位路径。

2. 按需选择配置方式

临时生效(仅当前Notebook生效)

在初始化SparkSession的代码前,添加环境变量配置:

import os
# 把引号内的路径替换为你上一步拿到的路径
os.environ["PYSPARK_PYTHON"] = "你拿到的Python3.7路径"
os.environ["PYSPARK_DRIVER_PYTHON"] = "你拿到的Python3.7路径"

配置完成后再初始化Spark、运行原有代码即可。

永久生效(全局配置,无需每次重复设置)

打开Mac终端对应的配置文件:

  • 使用zsh终端的用户,编辑~/.zshrc文件
  • 使用bash终端的用户,编辑~/.bash_profile文件

在文件末尾添加两行配置:

export PYSPARK_PYTHON=你拿到的Python3.7路径
export PYSPARK_DRIVER_PYTHON=你拿到的Python3.7路径

保存文件后,执行source ~/.zshrc(zsh终端)或source ~/.bash_profile(bash终端)使配置生效,重启Jupyter Notebook即可。

3. 验证配置

配置完成后执行以下代码确认版本匹配:

import sys
# 打印驱动端Python版本
print("驱动端版本:", sys.version.split(" ")[0])
# 打印工作端Python版本
print("工作端版本:", spark.sparkContext.pythonVer)

两者次版本号一致(均为3.7.x)即配置成功,再运行你原有代码不会再触发该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:03