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

PySpark运行报错:PicklingError与Python版本适配问题求助

解决Jupyter Notebook自动使用Python3.11导致PySpark报错的问题

核心问题

Spark 3.3.2不兼容Python3.11,你降级Python3.10后终端运行正常,但Jupyter默认绑定了Python3.11的环境,导致报错。以下是具体解决步骤:

方法一:用Python3.10虚拟环境隔离环境(推荐)

  1. 确保Python3.10已安装
    若未安装,通过Homebrew安装:

    brew install python@3.10
    

    验证安装路径:

    which python3.10
    
  2. 创建并激活Python3.10虚拟环境

    # 创建名为pyspark_env的虚拟环境
    python3.10 -m venv pyspark_env
    # 激活虚拟环境
    source pyspark_env/bin/activate
    
  3. 在虚拟环境内安装PySpark和Jupyter

    pip install pyspark==3.3.2 jupyter
    
  4. 配置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文件末尾。

  5. 启动Jupyter Notebook

    jupyter notebook
    

    此时Jupyter使用的是Python3.10环境,运行你的PySpark代码即可正常执行。

方法二:给Jupyter添加Python3.10内核

若不想用虚拟环境,可直接给现有Jupyter添加Python3.10内核:

  1. 安装ipykernel到Python3.10环境

    python3.10 -m pip install ipykernel
    
  2. 添加Python3.10内核到Jupyter

    python3.10 -m ipykernel install --user --name pyspark310 --display-name "Python 3.10 (PySpark)"
    
  3. 启动Jupyter Notebook后,新建Notebook时选择Python 3.10 (PySpark)内核即可。

验证方法

在Jupyter Notebook中运行以下代码,确认Python版本为3.10:

import sys
print(sys.version)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:13:27