如何使用多个加入密钥加入两个流



以下代码片段是从 JoinedStreams 的 javadoc 复制而来的

val one: DataStream[(String, Int)]  = ...
val two: DataStream[(String, Int)] = ...
val result = one.join(two)
.where {t => ... }
.equal {t => ... }
.window(TumblingEventTimeWindows.of(Time.of(5, TimeUnit.SECONDS)))
.apply(new MyJoinFunction())

两个流仅基于一个键(通过t => ...计算(连接,例如,one.a = two.a

我会问我如何基于多个键进行连接,例如,one.a = two.a 和one.b = two.b

你的键选择器可以返回一个元组,即

.where {t => (t.a, t.b)}
.equals {t => (t.a, t.b)}

通过在加入时使用键选择器,可以生成一个元组来显示两个键。

最新更新