模式改变时数据插入到增量表中



如何在Databricks中更改模式时插入数据

在Databricks Scala中,我正在爆炸一个Map列并将其加载到delta表中。我有一个预定义的增量表模式。

假设模式有4列A,B,C,D

所以,有一天,我用下面的代码加载我的数据框4列到增量表。

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

数据框架中的列每天都在变化。例如,在第2天,添加了两个新列EF,没有C列。现在我有5列A,B,D,E,F在数据框中。当我将这些数据加载到增量表中时,应该在表模式中动态地创建EF列,并将相应的数据加载到这两列中,列C应该填充为NULL。我假设spark.conf.set("spark.databricks.delta.schema.autoMerge","true")会完成这项工作。但我无法做到这一点。

我的方法:我想列出预定义的增量模式和数据框架模式,并在将其加载到增量表之前对两者进行比较。

你能使用一些Python逻辑吗?

result = pd.concat([df1, df2], axis=1, join="inner")

然后,将数据框推送到动态创建的SQL表中?

https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html

相关内容

  • 没有找到相关文章

最新更新