Windows11运行pyspark报错:No module named 'pyspark.resource'
Windows 11下PySpark启动报错:ModuleNotFoundError: No module named 'pyspark.resource'
问题详情
首次在Windows 11搭建PySpark环境,严格遵循Apache Spark官方部署步骤,运行pyspark命令时触发模块缺失错误。
错误回溯
Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. Traceback (most recent call last): File "D:\SoftwareInstallations\spark-3.5.1\python\pyspark\shell.py", line 31, in <module> import pyspark File "D:\SoftwareInstallations\spark-3.5.1\python\pyspark\__init__.py", line 59, in <module> from pyspark.rdd import RDD, RDDBarrier File "D:\SoftwareInstallations\spark-3.5.1\python\pyspark\rdd.py", line 78, in <module> from pyspark.resource.requests import ExecutorResourceRequests, TaskResourceRequests ModuleNotFoundError: No module named 'pyspark.resource'
已配置环境变量
HADOOP_HOME = D:\SoftwareInstallations\hadoop-winutils\hadoop-3.3.5 PYTHONPATH = %SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.9.7-src.zip SPARK_HOME = D:\SoftwareInstallations\spark-3.5.1
已尝试操作
- 执行
pip install pyspark重新安装PySpark,问题未解决。
解决方案
1. 检查Spark安装包完整性
pyspark.resource是Spark 3.x内置模块,缺失说明安装包损坏或解压不完整:
- 从Apache Spark官方渠道重新下载Spark 3.5.1压缩包(优先选择预编译兼容Hadoop的版本)
- 使用7-Zip等可靠解压工具,完整解压到原
SPARK_HOME路径,覆盖现有文件,确保解压过程无中断或报错
2. 修正PYTHONPATH配置
当前PYTHONPATH未包含pyspark核心模块目录,导致Python无法找到子模块:
- 打开系统环境变量编辑器,将PYTHONPATH修改为:
%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.9.7-src.zip;%SPARK_HOME%\python\pyspark - 新增
%SPARK_HOME%\python\pyspark条目,确保Python能直接定位到pyspark的所有子模块
3. 消除全局PySpark与本地Spark的冲突
通过pip安装的全局PySpark可能与本地Spark目录的版本冲突:
- 执行
pip uninstall pyspark卸载全局安装的PySpark - 重启命令提示符,执行
echo %PYTHONPATH%确认本地Spark的python路径优先级高于全局site-packages
4. 验证环境变量生效
- 重启终端/命令提示符,确保环境变量修改生效
- 执行以下命令验证路径配置:
确认输出中包含echo %SPARK_HOME% echo %PYTHONPATH% python -c "import sys; print('\n'.join(sys.path))"D:\SoftwareInstallations\spark-3.5.1\python和D:\SoftwareInstallations\spark-3.5.1\python\pyspark
5. 确认Python版本兼容性
Spark 3.5.1支持Python 3.8-3.11,你的3.10.7版本符合要求,但需确保使用64位Python(错误日志显示AMD64,满足要求);若使用虚拟环境,需在虚拟环境内重新配置上述环境变量。
内容的提问来源于stack exchange,提问作者Aravindan vaithialingam
相关产品推荐
相关产品推荐

