gpt4 book ai didi

azure - 创建表期间写入 UserMetadata 字段

转载 作者:行者123 更新时间:2023-12-03 06:08:23 26 4
gpt4 key购买 nike

当我在 DataBricks 环境中运行以下代码时,初始保存不会将“初始提交”写入 userMetaData 字段;但是,以下两个“追加”操作分别将“添加了詹姆斯·布朗”和“添加了乔·雷德、吉姆·布鲁和乔·特鲁”写入了 userMetaData,没有问题:

# https://stackoverflow.com/questions/47674311/how-to-create-a-sample-single-column-spark-dataframe-in-python
df1 = sc.parallelize([["Brown", "John"], ["Green", "John"]]).toDF(("LastName", "FirstName"))
df2 = sc.parallelize([["Brown", "James"]]).toDF(("LastName", "FirstName"))
df3 = sc.parallelize([["Red", "Joe"], ["Blue", "Jim"], ["True", "Joe"]]).toDF(("LastName", "FirstName"))


# https://bigdataprogrammers.com/write-dataframe-to-delta-table-in-databricks-with-append-mode/
# https://docs.databricks.com/en/delta/custom-metadata.html#language-python
tableName = "myCatalog.mySchema.metaDataTest"
df1.write.format("delta").option("userMetadata", "Initial Commit").saveAsTable(tableName)
df2.write.mode("append").format("delta").option("userMetadata", "Added James Brown").saveAsTable(tableName)
df3.write.mode("append").format("delta").option("userMetadata", "Added Joe Red, Jim Blue and Joe True").saveAsTable(tableName)

为什么我通过 df1 创建的初始表没有将“初始提交”写入 userMetadata 字段?

Select all Rows from metaDataTest Table describe history metaDataTest

最佳答案

如果您想要将“初始提交”设置为版本 0 的元数据,则应在附加数据之前使用该元数据显式创建增量表。

通过运行 history 命令写入 Delta 表了解更多Retrieve Delta table history

尝试以下方法:

df1.write.format("delta").mode("overwrite").option("userMetadata", "Initial Commit").save(tablePath)

在上面的代码中我使用了.mode(“覆盖”) enter image description here

enter image description here

关于azure - 创建表期间写入 UserMetadata 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77069183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com