Windows下Pycharm运行PySpark执行action操作提示找不到python3如何解决
问题根因
该报错是由于Spark默认启动Python worker进程时优先调用python3命令,但Windows系统下Python安装时默认生成的可执行文件为python.exe,不存在python3对应的可执行文件,因此触发找不到文件的错误。df.printSchema()可以正常执行是因为该操作属于Driver端的元数据读取操作,不需要启动Executor端的Python worker进程;而df.show()、df.count()属于Action操作,需要触发作业执行、启动Python worker进程,因此会触发报错。
修复方案
以下三种方案任选其一即可:
- 方案1:代码内临时指定(单次运行生效,适合临时测试)
在创建SparkSession的代码前添加如下配置:import os os.environ['PYSPARK_PYTHON'] = 'python' os.environ['PYSPARK_DRIVER_PYTHON'] = 'python' - 方案2:配置系统环境变量(永久生效,所有PySpark程序通用)
在Windows系统环境变量中新增两个变量:- 变量名:
PYSPARK_PYTHON,变量值:python - 变量名:
PYSPARK_DRIVER_PYTHON,变量值:python
配置完成后重启IDE或命令行窗口即可生效。
- 变量名:
- 方案3:创建python3别名(适用于所有需要调用python3命令的场景)
进入Python 3.8.3的安装根目录,将目录下的python.exe复制一份,重命名为python3.exe,放在同一路径下即可。
内容的提问来源于stack exchange,提问作者supernova
相关产品推荐
相关产品推荐

