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

PySpark DataFrame首次运行报错:[WinError 2] 系统找不到指定文件

PySpark [WinError 2] 系统找不到指定文件问题排查与解决

问题代码

import findspark
findspark.init()
findspark.find()
from pyspark.sql import SparkSession
from pyspark.sql.types import *
        
spark=SparkSession.builder.master("local[*]").appName("SparkByExamples.com").getOrCreate();
    
data2 = [(1, 'Smith', 2018, 10, 'M', 3000), (2, 'Rose', 2010, 20, 'F', 4000), (3, 'Williams', 
        2010, 10, 'M', 1000),(4, 'Jones', 2005, 10, 'M', 2000), (5, 'Brown', 2010, 40, 'F', 
        3200)]

schema = StructType([
    StructField("Emp_id", StringType(), True), \
    StructField("Emp_name", StringType(), True), \
    StructField("Year joined", IntegerType(), True), \
    StructField("Emp_dep_id", StringType(), True), \
    StructField("Gender", StringType(), True), \
    StructField("Salary", IntegerType(), True)
    ])

df_emp = spark.createDataFrame(data=data2, schema=schema)
df_emp.show()

报错信息

Traceback (most recent call last):
  File "C:\Users\228091\PycharmProjects\Project1\task2.py", line 9, in <module>
    spark = SparkSession.builder.master("local[*]").appName("SparkByExamples.com").getOrCreate();
  File "C:\spark1\python\lib\pyspark.zip\pyspark\sql\session.py", line 228, in getOrCreate
  File "C:\spark1\python\lib\pyspark.zip\pyspark\context.py", line 384, in getOrCreate
  File "C:\spark1\python\lib\pyspark.zip\pyspark\context.py", line 144, in __init__
  File "C:\spark1\python\lib\pyspark.zip\pyspark\context.py", line 331, in _ensure_initialized
  File "C:\spark1\python\lib\pyspark.zip\pyspark\java_gateway.py", line 101, in launch_gateway
  File "C:\Program Files\Python310\lib\subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\Python310\lib\subprocess.py", line 1438, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定文件

Process finished with exit code 1

错误原因

该错误是PySpark启动Java网关时找不到依赖可执行文件导致的,核心诱因包括:

  • 未安装Spark兼容的JDK(要求8或11版本),或未配置JAVA_HOME系统环境变量
  • findspark未指定Spark安装路径,无法定位Spark核心启动文件
  • 系统未配置SPARK_HOME环境变量,PySpark无法自动识别Spark位置

解决方法

1. 安装并配置JDK

  • 下载OpenJDK 8或11版本,安装到无空格的路径(如C:\Java\jdk1.8.0_391)
  • 配置系统环境变量:
    • 新建JAVA_HOME变量,值为JDK安装根目录
    • 在Path变量中添加%JAVA_HOME%\bin
  • 验证配置:打开命令提示符,输入java -version和javac -version,能正常输出版本即配置成功

2. 正确配置Spark路径

  • 确保Spark安装路径无空格(如C:\spark,避免C:\Program Files\spark这类路径)
  • 修改代码中findspark.init()的调用,指定Spark实际安装路径:
    findspark.init("C:\spark")  # 替换为你的Spark安装根目录
    
  • 或者配置系统环境变量SPARK_HOME,值为Spark安装根目录,这样findspark.init()无需传参也能自动识别

3. 验证环境并重新运行

  • 打开命令提示符,输入pyspark,能进入Spark交互环境则说明配置有效
  • 重新运行你的代码,即可正常创建SparkSession并显示DataFrame

内容的提问来源于stack exchange,提问作者Akhil Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:09:17