我的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)值(...........................
}
由于写操作(处理过的数据和偏移数据)都是在两个不同的数据库/连接上完成的,如何使它们成为事务性的?
由于
答案 0 :(得分:1)
我有同样的问题。通过Spark代码(直到v2.1),它似乎不可能,没有指定事务管理的选项。
我在其他答案中的更多详情:https://stackoverflow.com/a/42964361/47551