转载:spark write写入数据task failed失败在SaveMode.Append与SaveMode.Overwrite两种模式下的不同表现_祁东握力的博客-CSDN博客
1、SaveMode.Append
task失败重试,并不会删除上一次失败前写入的数据(文件根据分区号命名),重新执行时会继续追加数据。所以会出现数据重复。
2、SaveMode.Overwrite
task失败重试,会删除该分区上次失败所写入的数据文件,然后创建一个新的数据文件写入数据。所以不会出现数据重复。
以我自己的使用情况:在Spark3.1中,SaveMode.Append在task失败重试的情况下,不会有数据重复。
(写HDFS是先写在一个临时目录,然后移动到对应的分区下。当task失败就不会被committed,成功commited的任务才会移动)