如何在不删除先前值的情况下在MapState上更新值?

时间:2020-04-16 14:38:56

标签: apache-flink flink-streaming flink-cep

这次,我的问题是:使用MapState,可以安全地使用mapstate.put(key, value)修改mapState中键的当前值,或者我需要做mapState.remove(key),然后再做{再次{1}}还是有任何更新的值?

从Flink的状态抽象开始,并不是为并发访问而设计的,不应在多个线程之间共享。因此,重新提出我的问题:是否可以根据键将值更新为mapState而不删除键,然后再次放置键?以及如何在不将此操作符的并行度设置为1的情况下使用mapState避免ConcurrentModificationException?

因为我有这个异常:

mapstate.put(key, value)

非常感谢。此致。

1 个答案:

答案 0 :(得分:3)

只需调用put来更新MapState中的条目就可以了。无需先remove现有值。