我想让spark sql将数据持久化,这样的话我可以使用回滚我们已经持久化的数据吗?前任。
假设我们有 3 个表 t1、t2 和 t3。
t1 和 t2 表数据已成功保留,但 t3 在数据完整性级别上失败了。那么我可以回滚我已经坚持的 t1 和 t2 数据吗?
我的意思是我可以回滚交易吗?
查看 Spark 代码(v1.6.2 至 v2.1.0),甚至似乎没有指定的选项when提交,也不回滚。
假设您最终保存/写入一个数据框savePartition
被调用并以以下内容结束:
if (supportsTransactions) {
conn.commit()
}
Source:
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 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
您始终可以考虑在源代码中自己添加此功能:)(并向上游拉取请求!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)