如何解决PySpark创建SparkSession时的Java网关进程异常?
解决SparkSession初始化报错:Java gateway process exited before sending its port number
复现代码
from pyspark.sql import SparkSession spark = SparkSession.builder.appName('abc').getOrCreate()
报错信息
RuntimeError Traceback (most recent call last) C:\Users\MOHANA~1\AppData\Local\Temp/ipykernel_18536/4172048100.py in <module> 1 from pyspark.sql import SparkSession ----> 2 spark = SparkSession.builder.appName('abc').getOrCreate() RuntimeError: Java gateway process exited before sending its port number
解决方法
- 验证Java环境:Spark依赖Java 8或11版本,打开命令行执行
java -version和javac -version,确认版本匹配且已加入系统PATH。未安装则下载对应JDK并完成环境变量配置。 - 配置Spark环境变量:
- 设置
SPARK_HOME指向Spark安装根目录 - 将
%SPARK_HOME%\bin添加到系统PATH - 确保
JAVA_HOME指向Java安装目录,路径避免包含空格(可改用短路径如C:\Progra~1\Java\jdk1.8.0_301)
- 设置
- 修复Spark安装:手动下载的Spark包若损坏,重新解压官方包;用pip安装的pyspark,执行
pip uninstall pyspark -y后再pip install pyspark重新安装。 - 清理临时文件:删除
C:\Users\MOHANA~1\AppData\Local\Temp下的ipykernel相关临时文件夹,重启Jupyter后重试。 - 检查权限:确保当前用户对Spark目录、Java目录及临时文件夹拥有读写权限,避免权限不足导致Java进程启动失败。
内容的提问来源于stack exchange,提问作者MohanaKrishna Alla
相关产品推荐
相关产品推荐

