返回信息流楼主用Spark往输出路径写Parquet数据时,从Spark UI 发现,Spark从cache里读内容,写到输出路径,但是还没写完,job fail了。Spark没有清理掉已经写到输出路径的那部分数据,而是重新计算DataFrame的内容,重新往输出路径继续写。最后结果有的数据被写了两遍。大家有遇到过类似的情况吗?
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #37358同步于 2020/12/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
Spark写Parquet时写到一半时出错,没有清理掉出错的数据而是继
PMS
2020/12/27镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
这很正常吧,一般Parquet,orc 这种有strip的列式存储格式在写一半失败了之后会破坏原有的文件格式。要接上次错误失败的地方继续写比较麻烦,而且不一定保证能恢复。所以一般的容错方式就是文件粒度的重写。
【 在 mWX301655 的大作中提到: 】
: 这很正常吧,一般Parquet,orc 这种有strip的列式存储格式在写一半失败了之后会破坏原有的文件格式。要接上次错误失败的地方继续写比较麻烦,而且不一定保证能恢复。所以一般的容错方式就是文件粒度的重写。
有什么能自动清掉已经写错的数据的方式?