首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spark overwrite保存模式是原子的吗?

spark overwrite保存模式是原子的吗?
EN

Stack Overflow用户
提问于 2019-12-18 17:34:03
回答 2查看 821关注 0票数 1

使用火花覆盖模式写入数据集将删除分区中的旧文件并写入新数据。这个过程是原子的吗?如果覆盖数据时作业失败,spark是否会还原分区中存在的旧文件?

EN

回答 2

Stack Overflow用户

发布于 2019-12-18 18:08:48

根据this在数据库中的帖子不是(emphasys我的):

有时以原子方式覆盖一组现有文件很有用。今天,Spark通过首先删除数据集,然后执行生成新数据的作业来实现覆盖。这会中断所有当前的读取器,并且不是容错。使用事务性提交,可以通过在提交时将文件标记为已删除,以原子方式“逻辑删除”文件

但它们也提供了一种实现原子覆盖的替代方案。

票数 2
EN

Stack Overflow用户

发布于 2020-05-08 22:01:01

覆盖操作是原子的,因为它首先删除旧的数据集,然后生成新的数据,但是,如果作业或任何任务失败,您可以丢失数据。此外,如果某个其他作业正在读取数据集,也将失败,因为文件已被删除。使用跨国提交,可以通过在提交时将文件标记为已删除,以原子方式“逻辑删除”文件。

可以通过将"spark.databricks.io.directoryCommit.enableLogicalDelete设置为true|false来切换原子覆盖“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59389070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档