【发布时间】:2021-12-28 05:39:42
【问题描述】:
我在 Spark 中制作了 Dataframe。
Dataframe 有新的行和数据库表的键列相同的行。
我需要插入新行并更新现有行。
例如:
数据框:
| Key1 | Key2 | Value |
|---|---|---|
| 1 | 11 | new value |
| 2 | 22 | value |
数据库中的表:
| Key1 | Key2 | Value |
|---|---|---|
| 1 | 11 | old value |
| 3 | 33 | other value |
我需要将我的 DataFrame 写入数据库并获得下一个结果:
数据库中的表:
| Key1 | Key2 | Value |
|---|---|---|
| 1 | 11 | new value |
| 2 | 22 | value |
| 3 | 33 | other value |
在哪里
(1, 11) 已更新
(2, 22) 被插入
(3, 33) 没有改变
我想有两种可能的解决方案:
- 合并新DataFrame中的数据并完全重写Database中的表
- 或将数据从 DataFrame 直接插入/更新到数据库中
我不知道该怎么做。该任务使用哪些工具?帮助我了解前进的方向。
【问题讨论】:
-
我想我只需要使用:
DataFrame.write.mode(SaveMode.overwrite)
标签: dataframe apache-spark apache-spark-sql