【问题标题】:how to add columns to a delta table using python able如何使用 python 将列添加到增量表中
【发布时间】:2022-10-25 12:48:43
【问题描述】:

我有一个增量表

# Load the data from its source.
df = spark.read.load("/databricks-datasets/learning-spark-v2/people/people-10m.delta")

# Write the data to a table.
table_name = "people_10m"
df.write.saveAsTable(table_name)

我现在有一个要添加的架构更改,可能是单个列,可能是几列,可能是嵌套数组。我无法预测代码执行中会出现什么。

我使用 python 的 set API 来查找新列,现在我想将它们添加到 delta 表中。理想情况下,使用 python API。

一种想法是修改 Dataframe 的架构,然后以某种方式告诉表匹配。我正在使用 python 的 set API 来查找新列。我不想读取整个数据集并编写它,我也不想杀死历史。如果可以在没有任何数据(只是模式更新)的情况下进行模式演变并停止所有列删除,我会同意模式演变。

【问题讨论】:

  • 您是否尝试过 ALTER 语句?您可以使用 spark.sql("ALTER ... "), docs.delta.io/latest/delta-batch.html#add-columns 从 Python 执行此 SQL
  • 那是sql而不是python。我的工作是使用启用了模式演变的新模式附加一个空表。

标签: apache-spark databricks delta-lake


【解决方案1】:

有效的解决方案是使用新架构创建一个空的 df (仅添加没有 rem 列)它们附加到表中,但写入架构演变。

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2021-08-08
    • 1970-01-01
    • 2013-06-17
    • 2022-10-05
    • 2021-09-11
    • 2016-05-29
    • 2021-03-21
    相关资源
    最近更新 更多