PySpark 安装全过程总结

📅 2026/7/5 12:35:45 👁️ 阅读次数 📝 编程学习
PySpark 安装全过程总结

而是典型的:

Windows 多开发环境下的大数据环境冲突问题。

整个过程里,你实际上同时涉及了:

Java Python Conda PySpark PyCharm Windows PATH Socket通信

而:

PySpark
本质上又是:

Python + JVM(Java) 的混合体系。

所以:

它比普通 Python 库复杂很多。


一、先理解 PySpark 的真实结构(核心认知)

很多初学者以为:

pip install pyspark

就结束了。

其实:

PySpark 实际运行结构:

Python代码 ↓ PySpark API ↓ Py4J ↓ JVM(Java虚拟机) ↓ Spark Core ↓ Hadoop生态

所以:

它同时依赖:

组件作用
Python写代码
Java(JDK)Spark运行核心
Py4JPython-Java桥梁
Spark分布式计算
Hadoop底层生态支持

二、你这次最核心的问题

其实是:

环境变量混乱。


三、问题1:Java 环境冲突(最大问题)

你最开始:

JAVA_HOME = Java8

但:

java -version

却显示:

Java17

同时:

javac -version

又是:

Java8

这说明:

系统出现了:

java 与 javac 不一致

四、为什么会这样?

因为:

Oracle javapath

偷偷代理了:

java.exe

导致:

命令实际来源
javaJava17
javacJava8
JAVA_HOMEJava8

这是:

Spark 最容易崩的环境之一。


五、解决思路

你后面:

统一到了:

JDK17

并:

  • 删除 Java8 PATH

  • 修改 JAVA_HOME

  • 统一 java/javac

  • 去掉 Oracle javapath

最终:

java = javac = JAVA_HOME = JDK17

这一步:

是整个安装最关键的步骤。


六、问题2:Python 版本兼容问题

你系统原本:

Python3.12

虽然理论上部分支持。

但:

PySpark生态并不推荐。

因为很多依赖:

  • pandas

  • pyarrow

  • numpy

  • delta-spark

对新版本 Python 支持滞后。


七、解决思路

你最终:

使用 Conda 创建独立环境:

conda create -n pyspark310 python=3.10

这是:

大数据/AI 开发最标准的做法。


八、为什么一定要 Conda

因为你电脑里同时有:

  • SpringBoot

  • PyTorch

  • PySpark

  • Vue

  • Docker

如果:

全部共用系统 Python

会:

很快环境污染。

Conda 的核心思想:

一个项目一个环境

九、问题3:Conda 不可用

你之前:

conda --version

提示:

不是内部或外部命令

原因是:

PATH 丢失。

但:

Miniconda 实际已经存在。


十、解决思路

通过:

手动修复 PATH

最终恢复:

conda

命令。


十一、问题4:PyCharm + Conda bug

你遇到:

lateinit property envs_dirs has not been initialized

这是:

PyCharm
新版对 Conda 的兼容 bug。


十二、解决思路

你没有继续依赖:

PyCharm自动检测Conda

而是:

手动指定:

python.exe

即:

envs/pyspark310/python.exe

这是:

最稳定方案。


十三、问题5:Python worker failed to connect back(最后大坑)

这是:

Windows PySpark 最经典问题之一。

本质:

Spark JVM 与 Python 子进程通信失败

涉及:

  • localhost

  • socket

  • IPv6

  • 防火墙

  • hostname


十四、解决思路(关键)

你最终:

.config("spark.driver.host", "127.0.0.1") .config("spark.driver.bindAddress", "127.0.0.1")

并:

local[1]

强制:

本地单线程 + IPv4。

最终:

Python Worker 成功回连。


十五、整个安装思路(宏观流程)

你这次最终形成的正确链路:

1. 统一Java环境 ↓ 2. 修复PATH/JAVA_HOME ↓ 3. 安装/修复Conda ↓ 4. 创建独立Python3.10环境 ↓ 5. 安装PySpark ↓ 6. PyCharm绑定Conda解释器 ↓ 7. 修复Windows socket通信 ↓ 8. SparkSession成功运行

十六、你这次真正学到的东西

其实不只是:

怎么安装PySpark

而是:

一个复杂开发环境如何排查。

你已经实际接触了:

领域内容
Java环境JAVA_HOME/PATH
Python环境多版本冲突
Conda虚拟环境
SparkJVM架构
Py4JPython-Java通信
Windows网络localhost/socket
IDE配置PyCharm解释器

十七、最终稳定方案(你现在的推荐架构)

组件推荐
JavaJDK17
Python3.10
PySpark3.5.1
环境管理Conda
IDEPyCharm
Spark模式local[1](Windows)

十八、为什么很多人觉得 Spark 难装

因为:

Spark 不是纯 Python 工具。

它其实是:

Python + Java + 分布式系统

所以:

环境链路特别长。


十九、你现在已经跨过的阶段

你现在已经不属于:

“不会装环境”

阶段了。

你已经开始进入:

“理解环境为什么会崩”

这个层级。

这是很大的进步。