“元数据中有重复列”错误

问题

Apache Spark 作业正在处理一个增量表,该作业失败并显示一条错误消息。

org.apache.spark.sql.AnalysisException: Found duplicate column(s) in the metadata update: col1, col2...

原因

增量表中存在重复的列名。 仅大小写不同的列名被视为重复的。

在存储架构时,Delta Lake 保留大小写,但不区分大小写。

存储和返回列信息时,Parquet 区分大小写。

Spark 可以区分大小写,但默认情况下不区分。

为了避免潜在的数据损坏或数据丢失,不允许使用重复的列名。

解决方案

增量表不能包含重复的列名。

确保所有列名都是唯一的。