Spark1.6 saveAsTable 函数使用 Overwrite存储模式设置分区表的 partition 会造成全表覆盖的问题

0.说明

在实际使用中有一个需求是通过 Spark 对分区表进行增量分区的覆盖操作,Spark 1.6 的 saveAsTable 函数使用 Overwrite 存储模式设置分区表的 partition 会造成全表覆盖的问题 ,使用Append 存储模式会造成同一分区数据多次写入并不能满足我们的需求。在网上查了一下原因,这是个存在很久的问题,是 Spark 的版本的问题,在 Spark 2.3 之后已经修复了这个问题。

参考链接

https://stackoverflow.com/questions/38487667/overwrite-specific-partitions-in-spark-dataframe-write-method

 

1.解决方法

除了高赞回答之外,下面这个回答更适合我的应用情景,参考了他这边的解决问题的思路,所以最后通过手工删除对应分区的内容,在执行增量分区的写入操作,适合的才是最好的。

 

posted @ 2020-11-10 15:03  山间一棵松  阅读(1494)  评论(0编辑  收藏  举报