Windows环境下PySpark执行df.show()提示Python未找到的问题求助
问题描述
在Windows系统中通过Anaconda终端的spark命令打开PySpark Shell,可正常创建DataFrame,但执行df.show()时弹出提示:
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
同时抛出错误:
raise Py4JJavaError( py4j.protocol.Py4JJavaError: An error occurred while calling o52.showString. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0) (LAPTOP-4407EI48 executor driver): org.apache.spark.SparkException: Python worker failed to connect back.
执行的命令:
# Create DataFrame in PySpark Shell data = [("Java", "20000"), ("Python", "100000"), ("Scala", "3000")] df = spark.createDataFrame(data) df.show()
已配置的环境变量:
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_351 PATH = %PATH%;C:\Program Files\Java\jdk1.8.0_351\bin SPARK_HOME = C:\apps\opt\spark-3.3.1-bin-hadoop2 HADOOP_HOME = C:\apps\opt\spark-3.3.1-bin-hadoop2 PATH=%PATH%;C:\apps\opt\spark-3.3.1-bin-hadoop2\bin
解决方案
1. 禁用Microsoft Store的Python别名
Windows默认会把python命令指向Microsoft Store的安装入口,导致Spark调用Python时出错:
- 打开Windows设置 → 应用 → 应用执行别名
- 找到
python.exe和python3.exe的开关,关闭这两个选项
2. 配置PYSPARK_PYTHON环境变量
Spark需要明确指定Python解释器路径,避免调用系统默认的无效路径:
- 新增系统环境变量
PYSPARK_PYTHON,值为Anaconda环境的Python路径(例如C:\Users\你的用户名\anaconda3\python.exe,或你使用的虚拟环境Python路径) - 同时新增
PYSPARK_DRIVER_PYTHON,值与PYSPARK_PYTHON保持一致
3. 验证环境变量生效
- 关闭所有Anaconda终端,重新打开
- 执行
echo %PYSPARK_PYTHON%,确认输出正确的Python路径 - 重启PySpark Shell,执行
df.show()测试
4. 调整PATH变量顺序
确保Anaconda的Python路径在PATH最前端,避免系统其他Python路径干扰:
- 编辑系统PATH变量,将Anaconda的主目录(如
C:\Users\你的用户名\anaconda3)和Scripts目录(如C:\Users\你的用户名\anaconda3\Scripts)移到PATH列表最顶部
内容的提问来源于stack exchange,提问作者felipe navarro
相关产品推荐
相关产品推荐

