Spark结构化流恰好加入一次

时间:2019-07-15 18:44:05

标签: scala apache-spark dataframe apache-kafka

我正在尝试使用Spark结构化流加入两个流。一个流是一些常规数据(流A),而另一个流(流B)是与流A中的数据相关的一些元数据。该元数据得到更新,因此我使用flatMapGroupWithState来保存状态。 / p>

它工作正常,但现在的问题是: 如果当数据a1进入A时流B中有数据b1,则它们将被合并并产生以下行:a1 b1。但是,如果稍后出现另一个针对b1的更新事件,它将再次与a1结合,那么我们最终将得到两行a1 b1

那么,是否存在使每一行只允许被连接一次的问题?这意味着,当b1更新时,由于a1已经加入,因此不应与a1加入。

我想过如果数据早于特定时间范围,则流A中的数据将过期。但是我希望有其他解决方案,因为还有一个流C必须与流A一起加入,并且流C中的事件可能会晚。

0 个答案:

没有答案