在 Apache spark SQL 中,我们可以回滚事务吗
Posted
技术标签:
【中文标题】在 Apache spark SQL 中,我们可以回滚事务吗【英文标题】:In Apache spark SQL can we roll back the transactions 【发布时间】:2015-09-29 10:13:53 【问题描述】:我想让 spark sql 用于数据持久化,在这种情况下,我可以使用回滚数据来保存我们持久化的数据。例如。
假设我们有 3 个表 t1、t2 和 t3。 t1 和 t2 表数据已成功持久化,但 t3 在数据完整性级别上有些失败。所以我可以回滚我坚持的 t1 和 t2 数据。
我的意思是我可以回滚交易吗?
【问题讨论】:
【参考方案1】:查看 Spark 代码(v1.6.2 到 v2.1.0),似乎甚至没有选项可以指定 何时 提交,也没有回滚。
假设您保存/写入数据帧,最终会调用 savePartition
并以:
if (supportsTransactions)
conn.commit()
来源: https://github.com/apache/spark/blob/v2.1.0/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala#L602-L604
您始终可以考虑自己在源代码中添加此功能 :)(以及向上游拉取请求!)
【讨论】:
以上是关于在 Apache spark SQL 中,我们可以回滚事务吗的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apache Spark / Spark SQL 加入文件
在 org.apache.spark.sql.types.DataTypes 中找不到 uuid