以下代码段是从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
答案 0 :(得分:1)
通过在联接时使用KeySelector,可以生成一个元组来显示两个键。
答案 1 :(得分:1)
您的键选择器可以返回一个元组,即
.where {t => (t.a, t.b)}
.equals {t => (t.a, t.b)}