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

读取Delta表得到空DataFrame,如何获取含指定嵌套列的DataFrame?

解决方法

首先要明确:read_delta是专门用来读取Delta Lake格式数据的工具,直接读取JSON文件自然会得到空DataFrame。要实现你想要的效果,可以按以下步骤操作:

  1. 先正确读取JSON文件
    使用Spark的read.json接口读取你的JSON文件,就能直接得到包含Car列的DataFrame,列值就是{"Model": null,"Color": null}这个结构体:

    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder.appName("ReadCarJSON").getOrCreate()
    df_json = spark.read.json("你的文件路径")
    

    如果你的JSON是多行格式,记得加上参数.option("multiline", "true")。

  2. (可选)将数据转为Delta格式存储
    如果之后需要固定用read_delta读取,可以先把读取到的JSON数据写入Delta表:

    df_json.write.format("delta").save("Delta表存储路径")
    
  3. 用read_delta读取Delta表
    现在再用read_delta读取就能得到符合要求的DataFrame了:

    df = spark.read.format("delta").load("Delta表存储路径")
    # 也可以用Delta Lake的专用API:
    # from delta.tables import DeltaTable
    # df = DeltaTable.forPath(spark, "Delta表存储路径").toDF()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:10:54