Windows安装Apache Spark后运行spark-shell报路径错误如何解决
Windows环境Apache Spark启动失败修复方案
以下步骤按报错出现顺序对应修复,全部操作完成后重启终端即可正常启动:
- 修正PySpark环境变量配置错误
你之前配置的PYSPARK_DRIVER_PYTHON取值为Python安装根目录,是导致“找不到Python可执行文件”“系统找不到指定路径”的核心原因,按以下要求调整:- 将
PYSPARK_DRIVER_PYTHON的取值修改为Python可执行文件的完整路径:C:\Program Files\Python310\python.exe - 新增系统环境变量
PYSPARK_PYTHON,取值和PYSPARK_DRIVER_PYTHON保持一致 - 确认Python安装目录下的
Scripts文件夹(默认路径C:\Program Files\Python310\Scripts)已加入系统PATH变量,新开终端执行python --version能正常返回版本号即配置生效
注意:所有环境变量修改完成后,必须完全关闭当前所有终端窗口再重新打开,旧终端不会加载新的环境变量配置。
- 将
- 修正Spark、Hadoop路径配置,解决winutils加载失败问题
日志中出现的SPARK_HOME取值为C:\spark\bin..、无法加载原生Hadoop库警告,都是路径配置不规范导致:- 将
SPARK_HOME系统变量取值设置为Spark根目录,即C:\spark,不要包含bin目录,不要带多余的相对路径符号、结尾斜杠 - 将
%SPARK_HOME%\bin、%SPARK_HOME%\sbin加入系统PATH变量,后续不需要手动切到C:\spark\bin目录再执行spark命令 - 新建
C:\hadoop\bin目录,将和你Spark大版本匹配的winutils.exe、hadoop.dll、winutils.pdb文件全部放入该目录,新增系统变量HADOOP_HOME取值为C:\hadoop,再把%HADOOP_HOME%\bin加入系统PATH,最后将hadoop.dll复制一份到C:\Windows\System32目录即可解决Hadoop库加载失败问题。
- 将
- 修复URI非法字符报错,解决SparkContext初始化失败问题
抛出java.net.URISyntaxException、路径中出现spark://DESKTOP-XXXX:XXXXX/C:\classes格式的非法地址,是Spark在Windows下自动拼接类路径的已知bug,按以下方式修复:- 进入Spark安装目录下的
conf文件夹,将spark-defaults.conf.template文件复制一份,重命名为spark-defaults.conf - 打开新建的配置文件,新增一行配置:
spark.driver.extraClassPath .,强制驱动使用合法类路径加载资源,避免自动拼接出带Windows盘符的非法URI - 启动终端时右键选择“以管理员身份运行”,避免权限不足导致的路径访问异常
- 进入Spark安装目录下的
- 其他说明
启动时出现的非法反射访问警告是JDK9及以上版本和Spark的兼容提示,不会阻断程序运行,如果需要彻底消除该警告,换装JDK8即可(这是Spark官方文档标注的兼容性最优版本)。
全部配置完成后,在新开的管理员终端中直接执行spark-shell,出现Spark ASCII logo、Scala交互提示符scala>即代表启动成功。
内容的提问来源于stack exchange,提问作者preet
相关产品推荐
相关产品推荐

