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

咨询适配Python 3.10的Spark与PySpark最佳兼容版本及报错解决

适配Python 3.10的Spark与PySpark最佳版本及报错解决

报错原因

你遇到的Py4JError: org.apache.spark.api.python.PythonUtils.isEncryptionEnabled does not exist in the JVM错误,核心原因是Spark 2.4.6与Python 3.10版本不兼容。Spark 2.x系列的Python支持上限为Python 3.8,无法适配3.10版本,导致Python侧调用JVM侧方法时出现匹配失败。

适配Python 3.10的最佳版本组合

Spark 3.2.x及以上版本正式支持Python 3.10,结合你当前的OpenJDK 11环境,推荐以下稳定版本:

  • Spark 3.2.1/3.2.3:成熟稳定,兼容性强,完全适配Python 3.10与OpenJDK 11
  • Spark 3.3.x/3.4.x:更新的版本,包含更多特性优化,同样兼容Python 3.10与OpenJDK 11

注意:PySpark版本必须与Spark版本完全一致,避免跨版本不匹配问题。

解决步骤

  1. 卸载当前版本的PySpark:

    pip uninstall pyspark -y
    

    若你本地手动安装了Spark二进制包,直接删除对应安装目录即可。

  2. 安装适配版本的PySpark(以Spark 3.2.3为例):

    pip install pyspark==3.2.3
    

    若需要更新版本,可替换为pyspark==3.4.1等对应版本号。

  3. 验证安装有效性:
    运行以下代码测试环境是否正常:

    from pyspark.sql import SparkSession
    spark = SparkSession.builder.appName("CompatibilityTest").getOrCreate()
    print(f"Spark版本: {spark.version}")
    print(f"Python版本: {spark.sparkContext.pythonVer}")
    spark.stop()
    

额外注意事项

  • 保持当前的OpenJDK 11版本即可,Spark 3.x系列完全兼容Java 8与Java 11,无需更换Java环境
  • 若使用s3fs,建议安装最新版本的s3fs,其对Spark 3.x的兼容性更好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:20:41