总结
默认值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(