总结
默认值true
你写入的df分区字段必须全部符合覆盖条件 .option("replaceWhere", "c2 == 2")
false: df1 overwrite tb1:
df1中每个分区的处理逻辑:
- tb1中存在(且谓词中匹配)的分区,则覆盖
- tb1中存在(谓词中不匹配)的分区,则append
- tb1中不存在 则新增该分区
false的结果诡异 那么我该用什么?
使用动态分区覆盖:
df.write
.format("delta")
.mode("overwrite")
.option("partitionOverwriteMode", "dynamic")
.saveAsTable("default.people10m")
初始化p1表
Seq(
("a",1)
,("b",2)
).toDF("c1","c2")
.write.format("delta").mode("overwrite")
.partitionBy("c2").save(