gpt4 book ai didi

apache-spark - 如何使用 PySpark 的 JDBC 覆盖数据而不会丢失架构?

转载 作者:行者123 更新时间:2023-12-01 11:16:55 24 4
gpt4 key购买 nike

我有一个 DataFrame,我愿意将它写入 PostgreSQL 数据库。如果我只是使用“覆盖”模式,例如:

df.write.jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)

重新创建表并保存数据。但问题是我想将 PRIMARY KEY 和 Indexes 保留在表中。所以,我想要么只覆盖数据,保留表架构,要么在之后添加主键约束和索引。任何一个都可以用 PySpark 完成吗?或者我是否需要连接到 PostgreSQL 并执行命令来自己添加索引?

最佳答案

mode="overwrite" 的默认行为是先删除表,然后用新数据重新创建它。您可以通过包含 option("truncate", "true") 来截断数据。然后推送你自己的:

df.write.option("truncate", "true").jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)

这样,您就不会重新创建表,因此它不应对您的架构进行任何修改。

关于apache-spark - 如何使用 PySpark 的 JDBC 覆盖数据而不会丢失架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650790/

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