在火花流中我遇到以下问题。
[Map A] - [Foreach to cassandra]
/
[Kafka Input stream] <
\
[Map B] - [Foreach to cassandra]
但我必须在此流的末尾提交偏移量。
我现在要做的是,添加另一个分叉:
[Kafka Input stream] - [Foreach offset to kafka manager]
但当然,当spark完全停止但是如果Map A失败(例如cassandra重载)时,它仍然会被提交给偏移管理器。
正确的事情是
[Map A] - [Map to cassandra]
/ \
[Kafka Input stream] < > [Foreach to offset manager]
\ /
[Map B] - [Map to cassandra]
但[Foreach cassandra]是cassandra spark连接器的一部分而且它不是我的代码,因此我坚持使用foreach。 而且我不想重写cassandra spark连接器,因为我认为他们做得很好。
所以问题是:有没有办法使用这些foreach并在没有通知的情况下得到通知,知道我是否必须提交我的抵消?