交易块| Spark SQL,rdd

时间:2016-09-13 12:20:43

标签: mysql scala apache-spark-sql transactional

我的dStream.foreachRDD方法中有一个处理块,处理包括使用spark sql持久化到mysql。 发布,我在另一个架构/表中持久化最新处理的偏移量。我想使整个块事务(scala)。怎么实现呢? 以下是代码的相关摘录:

.foreachRDD(rdd => {........... ...................................

df.write.mode(“append”)。jdbc(url + rawstore_schema +“?rewriteBatchedStatements = true”,tablesToFetch(index),connectionProperties)

.................... metricsStatement.executeUpdate(“插入metrics.txn_offsets(topic,part,off,date_updated)值(...........................

}

由于写操作(处理过的数据和偏移数据)都是在两个不同的数据库/连接上完成的,如何使它们成为事务性的?

由于

1 个答案:

答案 0 :(得分:1)

我有同样的问题。通过Spark代码(直到v2.1),它似乎不可能,没有指定事务管理的选项。

我在其他答案中的更多详情:https://stackoverflow.com/a/42964361/47551