与表锁定相关的spark配置单元插入

u7up0aaq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(239)

只是一个简短的问题。我正在尝试执行一个spark程序,它的版本是1.6.0,在配置单元表上使用并发加载。正在使用 insert 中的语句 hiveContext.sql("insert . . .") 这是一个很好的方法,因为我希望在编写过程中确保表锁定,因为从spark文档中看到的情况来看,在使用Dataframe保存操作时,表锁定和原子性没有得到保证。
保存操作可以选择采用保存模式,该模式指定如何处理现有数据(如果存在)。重要的是要认识到,这些保存模式不使用任何锁定,也不是原子的。此外,在执行覆盖时,数据将在写入新数据之前被删除。“
当访问/插入指定配置单元表中的数据时,如何确保spark中配置单元表的原子性或锁定?
任何建议都很有帮助。非常感谢你。

83qze16e

83qze16e1#

解决方案取决于你需要原子写作做什么。
最简单的方法之一是使用分区的外部表:
在spark作业中,您不将Dataframe写入表,而是写入hdfs dir。
一旦写操作完成,您将向表中添加一个新分区,指向新的目录。

相关问题