读取Delta表得到空DataFrame,如何获取含指定嵌套列的DataFrame?
解决方法
首先要明确:read_delta是专门用来读取Delta Lake格式数据的工具,直接读取JSON文件自然会得到空DataFrame。要实现你想要的效果,可以按以下步骤操作:
先正确读取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")。(可选)将数据转为Delta格式存储
如果之后需要固定用read_delta读取,可以先把读取到的JSON数据写入Delta表:df_json.write.format("delta").save("Delta表存储路径")用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
相关产品推荐
相关产品推荐

