Fer*_*rgo 7 apache-spark apache-spark-sql pyspark
我有一个 DataFrame,我愿意将它写入 PostgreSQL 数据库。如果我只是使用“覆盖”模式,例如:
df.write.jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)
Run Code Online (Sandbox Code Playgroud)
重新创建表并保存数据。但问题是我想将 PRIMARY KEY 和 Indexes 保留在表中。所以,我想要么只覆盖数据,保留表架构,要么在之后添加主键约束和索引。任何一个都可以用 PySpark 完成吗?或者我是否需要连接到 PostgreSQL 并执行命令来自己添加索引?
use*_*181 14
的默认行为mode="overwrite"是首先删除表,然后使用新数据重新创建它。您可以通过包含option("truncate", "true")然后推送自己的数据来截断数据:
df.write.option("truncate", "true").jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)
Run Code Online (Sandbox Code Playgroud)
这样,您就不会重新创建表,因此它不应对您的架构进行任何修改。
| 归档时间: |
|
| 查看次数: |
8645 次 |
| 最近记录: |