在Apache spark SQL中我们可以回滚事务

时间:2015-09-29 10:13:54

标签: apache-spark apache-spark-sql

我想为数据持久化生成spark sql,在这种情况下,我可以使用我们持久化的回滚数据。实施例

假设我们有3个表t1,t2和t3。 t1和t2表数据成功保留,但有些t3数据完整性级别失败。所以我可以回滚t1和t2数据wt我坚持了。

我的意思是我可以回滚交易吗?

1 个答案:

答案 0 :(得分:0)

通过Spark代码(v1.6.2到v2.1.0),似乎没有一个选项可以在提交时指定,也不会回滚。

假设您保存/写入一个Dataframe,最终会调用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

您可以随时在源代码中自行添加此功能:)(以及上游请求!)