【问题标题】:Databricks SQL AddColumn While Creating Delta Table创建增量表时 Databricks SQL AddColumn
【发布时间】:2022-11-24 03:29:02
【问题描述】:

我正在尝试从增量存储桶的 DBSQL 元存储中创建一个包含添加列的增量表。我不想传入架构,因为这可能会随着时间的推移在存储桶中发生变化,但我确实想仅向元存储添加一列,该列是 generatedAlways 列,以便在增量存储桶接收新数据时填充新值。这是我基于 Databricks 文档的代码:

DeltaTable.createIfNotExists(spark) \
.tableName("golddata.table") \
.addColumn("date", DateType(), generatedAlwaysAs="CAST(concat(year,month,'-01') AS DATE)") \
.location("cloudBucket://golddata/table") \
.execute()

此代码给出架构不匹配错误。有没有办法将 Databricks SQL Metastore 中的列添加到从我的增量存储桶加载的现有架构中? bucket中数据更新时使用generatedAlways函数会更新吗?

【问题讨论】:

    标签: pyspark databricks delta-lake dbsql


    【解决方案1】:

    如果要将列添加到现有的增量表中,则必须指定两个选项:

    • writewriteStream设置为.option("mergeSchema", "true")
    • spark.databricks.delta.schema.autoMerge.enabled 设置为 true

    如果提供了这两个,那么 Delta 应该将您的额外列合并到现有架构中。

    资料来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 2020-03-18
      • 2021-09-05
      • 2022-06-10
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      相关资源
      最近更新 更多