比较两个增量表的架构
Posted
技术标签:
【中文标题】比较两个增量表的架构【英文标题】:compare the schema of two delta tables 【发布时间】:2021-06-24 14:55:19 【问题描述】:需要有关如何比较两个增量表 X 和 Y 的架构的建议。 表 Y 比 X 多 N 列。 如何动态识别额外的列并添加到表 X?
在databricks/python中 提前致谢
【问题讨论】:
到目前为止你有什么? 【参考方案1】:您可以通过以下方式实现它:
def add_missing_columns(df1, df2):
additional_cols = [F.lit(None).cast(field.dataType).alias(field.name)
for field in df2.schema.fields if field.name not in df1.columns]
return df1.select("*", *additional_cols)
用法:
df1 = spark.createDataFrame([('1',), ('2',)], ["col1"])
df2 = spark.createDataFrame([('1',1, 0.5)], ["col1", "col2", "col3"])
add_missing_columns(df1, df2).show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 1|null|null|
| 2|null|null|
+----+----+----+
它是如何工作的 - 它遍历第二个数据帧的列,并检查它是否已经在第一个数据帧中。如果不是,它会创建一个具有空值的新列,但会转换为正确的数据类型。
【讨论】:
以上是关于比较两个增量表的架构的主要内容,如果未能解决你的问题,请参考以下文章