You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "xuefli@outlook.com" <xu...@outlook.com> on 2020/04/26 08:20:29 UTC
双流JOIN的源代码解读
DataStream 双流join时,看代码是使用CoGroupedStream的TaggedUnion,把T1,T2变成TaggedUnion统一对象后,union流后处理的,但是未找到如何处理UnionKeySelector<T1, T2, KEY> unionKeySelector,即对T1.key.equals(T2.key)进行处理的代码在哪里,这个有人知道吗
```
UnionTypeInfo<T1, T2> unionType = new UnionTypeInfo<>(input1.getType(), input2.getType());
UnionKeySelector<T1, T2, KEY> unionKeySelector = new UnionKeySelector<>(keySelector1, keySelector2);
DataStream<TaggedUnion<T1, T2>> taggedInput1 = input1
.map(new Input1Tagger<T1, T2>())
.setParallelism(input1.getParallelism())
.returns(unionType);
DataStream<TaggedUnion<T1, T2>> taggedInput2 = input2
.map(new Input2Tagger<T1, T2>())
.setParallelism(input2.getParallelism())
.returns(unionType);
DataStream<TaggedUnion<T1, T2>> unionStream = taggedInput1.union(taggedInput2);
// we explicitly create the keyed stream to manually pass the key type information in
windowedStream =
new KeyedStream<TaggedUnion<T1, T2>, KEY>(unionStream, unionKeySelector, keyType)
.window(windowAssigner);
//在源代码中什么地方处理T1.key.equals(T2.key)的
```
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用