如何将数据插入到具有更改架构的增量表中

问题描述 投票:0回答:1

在 databricks Scala 中,我正在分解 Map 列并将其加载到增量表中。我有一个预定义的增量表模式。

假设该模式有 4 个列 A、B、C、D。

因此,在第一天,我使用以下代码将包含 4 列的数据框加载到增量表中。

loadfinaldf.write.format("delta").option("mergeSchema", "true")\
   .mode("append").insertInto("table")

数据框中的列每天都在变化。例如,在第 2 天,添加了两个新列 E、F,并且没有 C 列。现在我的数据框中有 5 列 A、B、D、E、F。当我将此数据加载到增量表中时,应该在表 scehma 中动态创建列 E 和 F,并且相应的数据应该加载到这两列中,并且列 C 应该填充为 NULL。我假设 Spark.conf.set("spark.databricks.delta.schema.autoMerge","true") 会完成这项工作。但我无法实现这一目标。有人可以帮忙吗?

azure scala databricks azure-databricks
1个回答
0
投票

我不确定详细信息,但在我正在阅读的文档中

“mergeSchema 不能与 INSERT INTO 或 .write.insertInto() 一起使用。”

https://learn.microsoft.com/en-us/azure/databricks/delta/update-schema

也许你可以尝试 df.saveAsTable

© www.soinside.com 2019 - 2024. All rights reserved.