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

PySpark测试调用show()报Py4JJavaError错误求助

问题分析与解决

不是protocol.py文件的问题,错误根源是Windows系统中Spark无法找到python3命令。从错误日志核心信息可明确:

java.io.IOException: Cannot run program "python3": CreateProcess error=2, The system cannot find the file specified

Windows环境下Python默认执行命令是python而非python3,但PySpark默认尝试调用python3启动Python Worker,导致找不到可执行文件抛出错误。

解决方法

1. 在测试代码中指定PySpark使用的Python命令

在测试函数开头添加Spark配置:

@pytest.mark.usefixtures("spark_session")
def test_company_code(spark_session: SparkSession):
    # 配置PySpark使用python命令
    spark_session.conf.set("spark.pyspark.python", "python")
    
    # 生成Mock数据及后续代码不变...

2. 设置系统环境变量

添加系统环境变量指定PySpark的Python路径:

  • 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量 → 新建系统变量
  • 变量名:SPARK_PYSPARK_PYTHON,变量值:python
  • 重启命令行或IDE后重新运行测试

3. 创建Python3软链接(Windows)

找到Python安装目录(如C:\Users\你的用户名\AppData\Local\Programs\Python\Python310),以管理员权限打开命令提示符,执行:

mklink python3.exe python.exe

让系统能识别python3命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:26:09