【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/
相关推荐
long_songs2 小时前
Python编程第02课:Windows/Mac/Linux环境安装配置详解
windows·python·macos
百事牛科技2 小时前
高效办公技巧:如何取消PPT以“只读方式”打开?
windows·powerpoint
BIBI20492 小时前
VirtualBox 7.x 安装 Ubuntu 24 及增强功能配置、克隆虚拟机教程
linux·windows·ubuntu·环境搭建·安装教程·最佳实践·virtualbox
Master_H_ice12 小时前
Claude Code安装试用记录(Windows)
windows·claude code
芳草萋萋鹦鹉洲哦15 小时前
【windows】nginx如何注册为开机自启的服务(WinSW实现)
运维·windows·nginx
好名字更能让你们记住我15 小时前
vmware虚拟机安装Windows10镜像【超详细图文版】!!!
windows·系统安装·vmware·虚拟机·图文教程
副露のmagic16 小时前
字符串章节 leetcode 思路&实现
windows·python·leetcode
Java 码农16 小时前
Windows 系统安装 Claude Code 完整教程
windows
无籽西瓜a19 小时前
详解bat脚本:语法、常见用法、注意事项、示例
windows·batch·cmd·自动化工具