MacBook M1 Pro(Sonoma)运行PySpark遇JAVA_GATEWAY_EXITED错误求助
解决PySpark JAVA_GATEWAY_EXITED错误的其他思路
1. 修正Spark与Java版本兼容性
你当前使用的Spark 2.1.0不支持Java 21,Spark 2.x系列最高仅兼容Java 8或11。修改JAVA_HOME指向兼容版本:
export JAVA_HOME=$(/usr/libexec/java_home -v11)
修改后执行source ~/.zshenv使配置生效,再重启VS Code测试。
2. 校验Spark安装完整性
- 检查
SPARK_HOME路径有效性:执行ls /usr/local/Cellar/apache-spark/2.1.0/libexec/,确认目录下存在bin、python等核心文件夹。 - 若目录缺失,卸载重装指定版本Spark:
brew uninstall apache-spark brew install apache-spark@2.1
3. 查看Java Gateway详细报错日志
直接在终端运行pyspark命令,终端会输出Java侧的具体错误信息(比如依赖缺失、配置冲突);也可在PySpark代码开头添加日志配置:
import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--master local[3] --conf spark.driver.extraJavaOptions="-Dlog4j.rootCategory=INFO,console" pyspark-shell'
4. 确保VS Code加载正确环境变量
- 关闭VS Code,从终端执行
code命令启动,确保VS Code继承终端的环境变量配置。 - 在VS Code设置中搜索「terminal.integrated.env.osx」,手动确认
JAVA_HOME、SPARK_HOME等变量已正确填入。
5. 验证Py4J版本匹配
Spark 2.1.0对应Py4J 0.10.4版本,执行ls $SPARK_HOME/python/lib/确认py4j-0.10.4-src.zip文件存在;若缺失,手动下载对应版本Py4J包放入该目录。
6. 修复Spark目录权限
确保当前用户对Spark安装目录有读写权限:
sudo chown -R $USER /usr/local/Cellar/apache-spark/2.1.0/libexec/
内容的提问来源于stack exchange,提问作者Ricardo Augusto
相关产品推荐
相关产品推荐

