gpt4 book ai didi

scala - Spark 通过 SaveMode 写入数据作为 Append 或 overwrite

转载 作者:行者123 更新时间:2023-12-05 05:00:13 26 4
gpt4 key购买 nike

根据我的分析,附加将重新添加数据,即使它在表中可用,而覆盖保存模式将更新现有日期(如果有)并在数据框中添加附加行。

val secondCompaniesDF = Seq((100, "comp1"), (101, "comp2"),(103,"comp2"))
.toDF("companyid","name")
secondCompaniesDF.write.mode(SaveMode.Overwrite)
.option("createTableColumnTypes","companyid int , name varchar(100)")
.jdbc(url, "Company", connectionProperties)

如果 SaveMode 是 Append,并且重新执行此程序,公司将有 3 行,而在 Overwrite 的情况下,如果重新执行任何更改或添加行,现有记录将被更新并添加新行

注意:覆盖会删除表并重新创建表。有什么方法可以更新现有记录并插入新记录,例如 upsert。

最佳答案

对于更新插入和合并,您可以通过数据 block 或 HUDI 使用 delta lake

这是链接

https://github.com/apache/hudi

https://docs.databricks.com/delta/delta-intro.html

关于scala - Spark 通过 SaveMode 写入数据作为 Append 或 overwrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63155594/

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