我有一个DataFrame,我愿意将它写入PostgreSQL数据库。如果我只是使用“覆盖”模式,例如:
df.write.jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)
重新创建表并保存数据。但问题是我想将PRIMARY KEY和Indexes保留在表格中。所以,我想要只覆盖数据,保留表模式或者之后添加主键约束和索引。可以用PySpark完成吗?或者我是否需要连接到PostgreSQL并执行命令来自己添加索引?
答案 0 :(得分:0)
您可以尝试将模式移到jdbc
之外。
df.write.mode( “覆盖”)。JDBC(...)
答案 1 :(得分:0)
https://www.example.com/category/shirts
的默认行为是首先删除表,然后使用新数据重新创建它。您可以通过包含mode="overwrite"
来截断数据,然后推送自己的数据:
option("truncate", "true")
这样,您无需重新创建表,因此它不应对架构进行任何修改。