You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行PySpark基础代码时遭遇WinError 2文件未找到错误求助

运行PySpark基础代码时遭遇WinError 2文件未找到错误求助

我最近在尝试运行一段简单的PySpark基础代码,但每次都会弹出WinError 2(文件未找到)的错误,实在搞不懂哪里出问题了,来求助大家!

我的PySpark代码如下:

from pyspark import SparkConf,SparkContext
conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")
sc = SparkContext(conf=conf)
print(sc.version)
sc.stop()

我试着排查问题,下面是具体的错误回溯信息:

Traceback (most recent call last):
  File "D:\pycharm\pythonProject2\第三阶段\py_spark\spark基础.py", line 11, in <module>
    sc = SparkContext(conf=conf)
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\ProgramData\anaconda3\Lib\site-packages\pyspark\context.py", line 195, in __init__
    SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
  File "D:\ProgramData\anaconda3\Lib\site-packages\pyspark\context.py", line 417, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway(conf)
        ...

我来帮你分析下这个WinError 2的常见原因和解决办法哈:

  • 检查Java环境是否正确配置:PySpark依赖Java,WinError 2经常是找不到Java的可执行文件导致的。你可以先在命令行输入java -version和javac -version看看能不能正常输出版本信息,如果不行的话,得先安装JDK(建议8或11版本,PySpark对这两个版本兼容性最好),然后把Java的bin目录添加到系统的PATH环境变量里,还要配置JAVA_HOME环境变量指向JDK的根目录,比如C:\Program Files\Java\jdk1.8.0_381。

  • 确认Spark的环境变量配置:如果已经装了Spark,要把Spark的bin目录加到系统PATH里,同时配置SPARK_HOME环境变量指向Spark的安装根目录,比如D:\spark-3.5.0-bin-hadoop3。另外还要检查HADOOP_HOME,如果没装Hadoop的话,可以下个winutils.exe放到Spark的bin目录里,同时配置HADOOP_HOME指向Spark的安装目录(因为winutils在里面),这步在Windows上跑PySpark特别重要,很多人栽在这。

  • 检查Anaconda环境的兼容性:你用的是Anaconda的Python环境,要确认PySpark的版本和Python版本兼容,比如Spark 3.5支持Python 3.8-3.11。可以在命令行输入pip show pyspark看看安装的PySpark版本,要是版本不兼容的话,就卸载重装对应版本:pip uninstall pyspark然后pip install pyspark==3.4.1(选个和你Python匹配的版本)。

  • 代码里指定Spark配置(临时解决办法):如果环境变量配置了还是不行,可以在代码里直接指定Java和Spark的路径,比如:

from pyspark import SparkConf, SparkContext
conf = SparkConf() \
    .setMaster("local[*]") \
    .setAppName("test_spark_app") \
    .set("spark.driver.extraJavaOptions", "-Djava.home=C:\\Program Files\\Java\\jdk1.8.0_381") \
    .set("spark.executor.extraJavaOptions", "-Djava.home=C:\\Program Files\\Java\\jdk1.8.0_381")
sc = SparkContext(conf=conf)
print(sc.version)
sc.stop()

不过这只是临时方案,还是建议把环境变量配置好更省心。

  • 检查文件路径的中文问题:看你的代码文件路径里有中文“第三阶段”“spark基础”,虽然现在很多工具支持中文路径,但PySpark有时候对中文路径的兼容性不太好,建议把代码文件移到纯英文的路径下,比如D:\pycharm\pythonProject2\stage3\py_spark\spark_basic.py,再试试运行。

备注:内容来源于stack exchange,提问作者user27691493

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:53:07