我正在使用Spark Streaming。我有两个流:value-stream
和user-thresholds
流。我必须基于value-stream
流中指定的用户阈值过滤user-threshold-updates
的每200-1000ms,这很令人惊讶:)
我不想引入额外的复杂性并在外部存储(即Redis)上保持状态不变。我更喜欢使用Spark Streaming有状态操作mapWithState
。
问题是mapWithState
在一个流上运行,而我有两个。我无法合并value-stream
和user-threshold-updates
,因为它们具有不同的架构。我不想对每个微批处理都执行stateSnapshots
,因为它不起作用(value-stream
仅包含已更改的用户值,而user-threshold-updates
的快照将包含所有阈值用户)
基于value-stream
发出的状态来过滤user-thresholds
的最佳方法是什么?