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

Win10安装Spark启动报None.org.apache.spark.api.java.JavaSparkContext错误如何解决

问题解决方法

你遇到的java.lang.IllegalAccessError核心报错是Spark与Java版本不兼容导致的,目前Spark 3.0~3.3官方仅支持Java 8、Java 11两个大版本,更高版本的Java收紧了内部模块访问权限,会触发该类权限错误。下面是具体解决步骤:

1. 更换兼容的Java版本

  • 卸载当前安装的高版本JDK、JRE
  • 下载安装Java 8或Java 11,安装完成后更新JAVA_HOME用户/系统环境变量为新的JDK安装路径(如C:\jdk11),同时将JDK下的bin目录加入Path环境变量
  • 打开终端执行java -version,确认返回版本为1.8.x(Java 8)或11.x.x(Java 11)即为配置生效

2. 修复cmd执行pyspark跳转微软应用商店问题

该问题由Windows默认开启的Python应用安装别名导致:

  • 打开Windows系统设置,搜索「管理应用执行别名」
  • 将列表中「应用安装程序」对应的Python、Python3选项全部关闭即可

3. 验证Spark可用性

  • 重启终端后执行pyspark,确认可以正常加载Spark欢迎界面
  • 也可以运行测试代码验证功能正常:
from pyspark.sql import SparkSession
# 初始化SparkSession
spark = SparkSession.builder.appName('testApp').getOrCreate()
# 打印Spark版本
print(spark.version)
spark.stop()

如果更换Java版本后仍有报错,确认你使用的winutils.exe版本与当前安装的pyspark版本匹配即可。

如果不想降级Java,也可以通过添加JVM启动参数临时兼容高版本Java,创建SparkSession时添加对应配置即可:

spark = SparkSession.builder \
    .appName('testApp') \
    .config('spark.driver.extraJavaOptions', '--add-exports java.base/sun.nio.ch=ALL-UNNAMED') \
    .config('spark.executor.extraJavaOptions', '--add-exports java.base/sun.nio.ch=ALL-UNNAMED') \
    .getOrCreate()

该方案为临时兼容方案,学习测试可用,生产环境建议优先使用官方支持的Java版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:54:00