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

VS Code使用pytest运行Pyspark测试卡在SparkSession创建如何解决

Windows本地PySpark创建SparkSession卡顿无报错解决方案

必装基础依赖检查

  • Java环境配置:Spark 3.x仅兼容Java 8/11版本,禁止使用Java 17及以上版本。需正确配置JAVA_HOME系统环境变量为JDK安装根路径,同时将%JAVA_HOME%\bin添加到系统PATH中。可打开cmd执行java -version和echo %JAVA_HOME%验证配置有效性,注意JDK路径不能包含中文、空格或特殊字符。
  • Winutils适配包配置:Windows系统运行Spark必须安装对应版本的Winutils工具,版本需和Spark内置的Hadoop版本完全匹配。配置要求:
    1. 新建HADOOP_HOME系统环境变量,值为Winutils解压后的根路径
    2. 将%HADOOP_HOME%\bin添加到系统PATH中
    3. 将%HADOOP_HOME%\bin下的hadoop.dll文件复制到C:\Windows\System32目录,避免权限调用异常
  • PySpark版本一致性:通过pip安装的pyspark库版本必须和本地下载的Spark二进制包版本完全一致,可分别执行pip show pyspark和spark-submit --version核对版本号。

代码参数调整

卡顿大多由Windows网卡多IP解析异常导致,可在SparkSession创建时新增固定配置,调整后的示例代码如下:

from pyspark.sql import SparkSession
import pytest

# 提前手动创建C:\spark_temp目录,路径确保无中文、空格
def test_poc():
   spark_session = SparkSession.builder \
        .appName("local_pytest_test") \
        .master('local[1]') # 先用单核心测试,排查多线程资源冲突
        .config("spark.driver.host", "127.0.0.1") # 固定绑定本地回环地址,避免IP解析卡顿
        .config("spark.local.dir", "C:/spark_temp") # 自定义临时文件目录,避免默认目录权限问题
        .getOrCreate()
   # 你的业务测试逻辑
   spark_session.stop() # 测试结束主动关闭会话,避免残留进程阻塞后续运行

快速排查方法

暂时跳过VSCode的pytest调试面板,直接打开系统终端进入测试文件所在目录,执行pytest 你的测试文件名.py -s,直接查看终端输出的运行日志,可快速定位卡顿的具体环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:57:04