【python-Pyspark】环境搭建及案例(Windows)

Windows环境下开发pyspark程序

一、环境准备:Anaconda + Python 虚拟环境

1. 安装 Anaconda(推荐)

下载地址:https://www.anaconda.com/products/distribution

安装时选择"Add Anaconda to PATH"会更方便。

2、新建虚拟环境

使用conda新建一个虚拟环境用于PySpark开发:Python虚拟环境(windows)

✅ 推荐使用 python=3.10,兼容性好,适合新项目。

bash 复制代码
 conda create -p D: \APP\Anaconda\envs\spark_env python=3.10

2 、查看虚拟环境是否创建成功

bash 复制代码
conda env list

3、激活环境 并安装 PySpark 与必要依赖

bash 复制代码
conda activate 环境名            # 激活环境

pip install pyspark == 3.5.0    # 安装pyspark

pip install psutil              # 安装psutil

二、安装hadoop \ winutils

下载hadoop

(一)镜像网站下载

(二)官方网站下载

1、到官方网站下载 hadoop 这里我下载的是3.4.2版本
2、点击下载
3、双击安装包 解压到自己的磁盘中

下载winutils (Windows 下的 Hadoop 工具)

GitHub/Gitee 下载:

🔍 注意:选择与你 Hadoop 版本匹配的 bin 文件夹!

1、配置winutils

解压文件,选择hadoop版本(我这里是选择3.3.0版本的)对应的文件夹bin目录下的hadoop.dll和winutils.exe文件

将hadoop.dll和winutils.exe 拷贝到E:\hadoop-3.4.2\bin 、C:\Windows\System32下(两个文件各拷贝一份到两个目录中)

三、配置环境变量

1、配置系统变量

bash 复制代码
HADOOP_HOME

2、配置系统变量 path路径 添加

bash 复制代码
%HADOOP_HOME%\bin

4、环境测试

打开cmd

bash 复制代码
hadoop version

四、出现的问题

1、问题一:

解决方法:查看Java版本

确定java 环境变量是否配置成功 这里最好用jdk8 也就是jdk 1.8

. Hadoop 官方文档明确支持 JDK 8

Hadoop 官方推荐的 Java 版本是 Java 8(JDK 1.8)

官方文档(Apache Hadoop 3.4.3 -- Hadoop Cluster Setup )中明确写:

"Java 8 is the only officially supported version for Hadoop 3.x."

|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| JDK 8 下载(Temurin) | https://adoptium.net/temurin/releases/?version=8 |

(1)找到hadoop\etc\hadoop这个目录下的hadoop-env.cmd这个命令脚本。

修改JAVA_HOME,我的JAVA的安装路径为:D:\JDK1.8

检查问题解决

2、问题二:WinUtils.dll not found

报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

解决方法:

确保 winutils.exe 和 hadoop.dll 已复制到:
E:\hadoop-3.4.2\bin\
C:\Windows\System32\

确保 Hadoop 路径配置正确(HADOOP_HOME)

重启 CMD,重新运行命令

3、问题三:版本不兼容

bash 复制代码
java.lang.UnsupportedClassVersionError: Unsupported major.minor version 52.0    

极大概率发生! 52.0 = Java 8,但你用 Java 22 或者别的 → 不兼容

解决方法:

最好用JDK8 注意环境变量配置 ,python 版本 也不能太高

4、问题四 找不到python3

解决方法:

彻底删除非法 python3.exe,并用真实可执行文件替代!

步骤一:删除非法的python3

根据路径打开这两个文件 发现打不开

直接删除

C:\Users\48400\AppData\Local\Microsoft\WindowsApps\python3.exe

C:\Users\48400\AppData\Local\Microsoft\WindowsApps\python.exe

🚫 这个文件是"幽灵"!你不能让它影响系统!

  1. 打开文件资源管理器,进入: <TEXT>

    C:\Users\48400\AppData\Local\Microsoft\WindowsApps

  2. 找到 python3.exe 和 python.exe

  3. 右键 → 删除

    • 可能会提示"无法删除,因为权限不足"
    • 解决方法:右键 → 属性 → 安全 → 编辑 → 添加你的用户 → 给「完全控制」→ 保存

删除后,where python3 就只显示:

<TEXT>

C:\msys64\ucrt64\bin\python3.exe

👉 但这也不是你想要的!msys64 的 Python 安装很老、不完整,不适合 Spark!


步骤二:给Anaconda配置正确的python

D:\APP\Anaconda 加入系统 PATH

  1. 「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「系统变量」里找到 Path → 编辑 → 新建
  3. 添加 D:\APP\Anaconda
  4. 检查python还有没有 C:\Users\48400\AppData\Local\Microsoft\WindowsApps\python3.exe
  5. 点击「确定」,然后 重启 PyCharm

五、验证 PySpark 是否可用(测试代码)

python 复制代码
import os
os.environ["HADOOP_HOME"] = "E:\APP\hadoop-3.4.2"
from pyspark.sql import SparkSession
spark = SparkSession.builder \
    .appName("Test") \
    .master("local[*]") \
    .config("spark.executorEnv.PYSPARK_PYTHON", "D:\\APP\\Anaconda\\python.exe") \
    .getOrCreate()
print("Spark 已启动,版本:", spark.version)

df = spark.range(5).withColumnRenamed("id", "num")
df.show()  # 必须加!

spark.stop()
print("👋 Spark 已关闭")

输出:配置成功啦

Spark 已启动,版本: 3.5.0

+---+

|num|

+---+

| 0|

| 1|

| 2|

| 3|

| 4|

+---+

👋 Spark 已关闭

六、总结

检查项 是否完成
使用 Anaconda 创建虚拟环境 ✔️
激活环境并安装 pysparkpsutil ✔️
下载 Hadoop 3.4.2 并解压至指定路径 ✔️
下载 winutils(3.4.2 版本对应) ✔️
复制 winutils.exehadoop.dll 到 bin 和 System32 ✔️
配置 HADOOP_HOMEPATH ✔️
配置 JAVA_HOME 指向 JDK 8 ✔️
运行 hadoop version 测试成功 ✔️
PySpark 测试代码运行通过 ✔️

推荐资源(不想下载可以直接从我网盘网盘获取 )

资源 链接
Hadoop 官方文档 https://hadoop.apache.org/docs/stable/
JDK 8 下载(Temurin) https://adoptium.net/temurin/releases/?version=8
winutils(Gitee 镜像) https://gitee.com/nkuhyx/winutils
Hadoop 3.4.2 下载 https://mirrors.aliyun.com/apache/hadoop/core/hadoop-3.4.2/
相关推荐
YCOSA20256 小时前
雨晨 Windows 10 企业版 LTSC x64 中度精简 1809 迎双节 17763.9257 特别版
windows
sukalot6 小时前
windows 驱动实例分析系列: HidHide 驱动分析 - drivers 篇(四)
windows·驱动开发
ι:11 小时前
NUC12 Pro 安装 Ubuntu 24.04 LTS 详细教程
linux·windows·ubuntu·nuc
YCOSA202512 小时前
微软宣布将于10月7日举行Windows与Surface发布会,聚焦“Windows、NVIDIA RTX Spark、Surface,以及更广泛PC生态”
windows
Source.Liu12 小时前
【A11】 labelprinter(Tauri 版)新建步骤
windows·rust
Punchline27813 小时前
解决 Windows 环境变量 Path 设置时提示“字符太长”的完整指南
windows·环境变量·path
chushiyunen14 小时前
claude code笔记(二)、claude桌面端(内网不好用)
windows
d_benhua14 小时前
以太网测试步骤
windows
冯一川15 小时前
DeepSeek在Windows系统上部署
windows·python
解道Jdon16 小时前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio