PySpark运行报错:PicklingError与Python版本适配问题求助
解决Jupyter Notebook自动使用Python3.11导致PySpark报错的问题
核心问题
Spark 3.3.2不兼容Python3.11,你降级Python3.10后终端运行正常,但Jupyter默认绑定了Python3.11的环境,导致报错。以下是具体解决步骤:
方法一:用Python3.10虚拟环境隔离环境(推荐)
确保Python3.10已安装
若未安装,通过Homebrew安装:brew install python@3.10验证安装路径:
which python3.10创建并激活Python3.10虚拟环境
# 创建名为pyspark_env的虚拟环境 python3.10 -m venv pyspark_env # 激活虚拟环境 source pyspark_env/bin/activate在虚拟环境内安装PySpark和Jupyter
pip install pyspark==3.3.2 jupyter配置Spark环境变量(可选,若Spark未全局配置)
假设你的Spark安装路径为/usr/local/Cellar/apache-spark/3.3.2/libexec,在激活虚拟环境后执行:export SPARK_HOME=/usr/local/Cellar/apache-spark/3.3.2/libexec export PYSPARK_PYTHON=python3.10若想每次激活虚拟环境自动加载,可将上述两行添加到
pyspark_env/bin/activate文件末尾。启动Jupyter Notebook
jupyter notebook此时Jupyter使用的是Python3.10环境,运行你的PySpark代码即可正常执行。
方法二:给Jupyter添加Python3.10内核
若不想用虚拟环境,可直接给现有Jupyter添加Python3.10内核:
安装ipykernel到Python3.10环境
python3.10 -m pip install ipykernel添加Python3.10内核到Jupyter
python3.10 -m ipykernel install --user --name pyspark310 --display-name "Python 3.10 (PySpark)"启动Jupyter Notebook后,新建Notebook时选择
Python 3.10 (PySpark)内核即可。
验证方法
在Jupyter Notebook中运行以下代码,确认Python版本为3.10:
import sys print(sys.version)
内容的提问来源于stack exchange,提问作者dsp
相关产品推荐
相关产品推荐

