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

从字典列表创建PySpark DataFrame调用show方法报错求助

修复PySpark Python Worker连接超时及字典创建DataFrame问题

你用字典列表创建PySpark DataFrame的语法是正确的,报错核心原因是Spark的Python Worker进程无法与Driver建立连接,导致任务超时。以下是具体修复建议:

  • 调整Python Worker超时配置
    在创建SparkSession时增加超时时间配置,给Worker足够的启动和连接时长:

    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder \
        .appName('practiceDataframe23') \
        .config("spark.python.worker.timeout", "60") \
        .getOrCreate()
    df1 = spark.createDataFrame(data = [{'id':1, 'name':'Jose'},{'id':2, 'name':'Maria'}])
    df1.show()
    

    可根据实际情况调整超时数值(单位:秒)。

  • 确保Python环境一致性

    • 确认Driver与Worker使用的Python版本完全一致,Spark对版本一致性要求严格,混用版本会引发连接失败。
    • 若在Windows/WSL环境运行,需指定明确的Python解释器路径,避免系统找不到正确版本:
      spark = SparkSession.builder \
          .appName('practiceDataframe23') \
          .config("spark.pyspark.python", "python3") \
          .getOrCreate()
      
      替换python3为你实际使用的Python可执行文件路径。
  • 增加进程内存分配
    系统资源不足会导致Worker启动缓慢,可通过配置增加Driver和Executor的内存:

    spark = SparkSession.builder \
        .appName('practiceDataframe23') \
        .config("spark.driver.memory", "4g") \
        .config("spark.executor.memory", "2g") \
        .getOrCreate()
    

    内存数值根据你的机器硬件配置调整。

  • 重启Spark与Python环境
    临时进程冲突也可能引发该问题,完全关闭当前Python终端、Spark相关进程后,重新启动再执行代码。

  • 验证DataFrame创建逻辑(可选)
    可改用Row对象创建DataFrame,确认语法本身无问题:

    from pyspark.sql import SparkSession, Row
    
    spark = SparkSession.builder.appName('practiceDataframe23').getOrCreate()
    df1 = spark.createDataFrame([Row(id=1, name='Jose'), Row(id=2, name='Maria')])
    df1.show()
    

    若此代码能正常运行,说明问题确实出在Worker连接环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:07:19