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

PySpark是否存在类似Pandas按列字典创建DataFrame的方法

PySpark创建DataFrame的对应方法

当然有,写法和Pandas非常接近,只需要做少量适配即可:

首先你需要先初始化SparkSession(这是PySpark的操作入口,本地测试直接用下面的配置就行):

import numpy as np
from pyspark.sql import SparkSession

# 初始化SparkSession
spark = SparkSession.builder\
        .appName("create_df_demo")\
        .master("local[*]")\
        .getOrCreate()

接下来就可以用你熟悉的字典结构定义数据了:

# 数据定义和你写的Pandas版本完全一致
data = {
    "col1" : [np.random.randint(10) for x in range(1,10)],
    "col2" : [np.random.randint(100) for x in range(1,10)]
}

不同PySpark版本的创建方式

  • PySpark 3.3及以上版本:可以完全和Pandas写法对齐,直接调用即可:
    spark_df = spark.createDataFrame(data)
    # 查看数据,效果等价于Pandas里直接打印DataFrame
    spark_df.show()
    
  • PySpark 3.3以下版本:需要做一点小转换,因为低版本不支持直接传入{列名:列数据列表}格式的字典:
    # 把列数据打包成行记录,再指定列名即可
    spark_df = spark.createDataFrame(zip(*data.values()), schema=list(data.keys()))
    spark_df.show()
    

如果后续你需要转回Pandas DataFrame做本地分析,直接调用spark_df.toPandas()就能得到和你原本Pandas创建的完全一致的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:36:03