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

JupyterLab中初始化SparkContext时出现Py4JJavaError报错如何解决

报错原因

该报错是Java版本与当前PySpark版本不兼容导致的。Spark 3.3及更早版本仅兼容Java 8、Java 11,若本地安装了Java 16及更高版本,Java的模块化限制会默认禁止未命名模块访问sun.nio.ch内部包,触发该IllegalAccessError。

解决办法

可根据自身使用场景选择任意一种方案:

  • 方案1(最稳妥,无后续兼容问题):卸载本地高版本Java,安装Java 8或Java 11,正确配置JAVA_HOME环境变量后重新运行代码即可。
  • 方案2(无需更换Java版本):在初始化SparkContext前添加JVM启动参数,开放对应包的访问权限,修改后的代码如下:
import pyspark
from pyspark import SparkConf

conf = SparkConf()
conf.set("spark.driver.extraJavaOptions", "--add-exports java.base/sun.nio.ch=ALL-UNNAMED")
conf.set("spark.executor.extraJavaOptions", "--add-exports java.base/sun.nio.ch=ALL-UNNAMED")
sc = pyspark.SparkContext("local[*]", conf=conf)
  • 方案3:将PySpark升级到3.4及以上版本,新版本已适配高版本Java的模块化限制,无需额外配置即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:54:03