Delta Lake 合并不更新架构(启用自动架构演化)

lou*_*ere 6 pyspark databricks delta-lake

当我执行以下代码行时出现错误:

deltaTarget.alias('target').merge(df.alias('source'), mergeStatement).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()
Run Code Online (Sandbox Code Playgroud)

错误如下:

AnalysisException:无法解析给定列 {List of target columns} 的 UPDATE 子句中的 new_column。“new_column”确实不在目标增量表的架构中,但根据文档这应该只是更新增量表的现有架构并添加该列。

我还使用以下命令启用自动合并:

spark.conf.set("spark.databricks.delta.schema.autoMerge.enabled ","true")
Run Code Online (Sandbox Code Playgroud)

我不确定到底是什么导致了这个错误,因为在过去我能够使用这些确切的代码片段自动发展增量表的模式。

有什么我忽略的事情吗?

小智 0

如果我没有记错的话,您需要在 MERGE 操作上使用 insertAll 或 updateAll 选项