gpt4 book ai didi

apache-flink - 如何在 Apache Flink 中合并两个数据流

转载 作者:行者123 更新时间:2023-12-05 02:51:35 29 4
gpt4 key购买 nike

我正在使用 Flink 处理我的流数据。

我有两个数据源:A 和 B。

// A
DataStream<String> dataA = env.addSource(sourceA);
// B
DataStream<String> dataB = env.addSource(sourceB);

我使用 map处理来自 A 和 B 的数据。

DataStream<String> res = mergeDataAAndDataB();   // how to merge dataA and dataB?

表示 sourceA 正在发送:"aaa", "bbb", "ccc"... ,sourceB 正在发送:"A", "B", "C"... .

我想做的是将它们合并为 Aaaa, Bbbb, Cccc...生成一个新的 DataStream<String>对象。

如何实现?

最佳答案

Flink 中有两种流合并。

dataA.union(dataB)

将创建一个新流,其中包含两个流的元素,以某种任意方式混合,可能是"aaa"、"bbb"、"A"、"ccc"、"B"、"C",这不是您所要求的——只是为了完整性而提及它。

你想要的是创建一个连接流,通过

dataA.connect(dataB)

然后您可以使用 RichCoFlatMapFunctionKeyedCoProcessFunction 进行处理,以计算一种将字符串粘合在一起的连接。

你会找到一个 tutorial on the topic of connected streams在 Flink 文档中,以及在 training exercises that accompany the tutorials 中相当接近的示例.

关于apache-flink - 如何在 Apache Flink 中合并两个数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63050324/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com