我使用flink来处理我的streaming数据。
我有两个数据源: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?
说源a正在发送: "aaa","bbb","ccc"...
,源b正在发送:"A","B","C"...。
"A","B","C"...。 我想做的是把它们合并成
Aaaa, Bbbb, Cccc...来生成一个新的
DataStream`对象。
如何实现这个目标?
1条答案
按热度按时间ddrv8njm1#
在flink中,有两种流的合并。
将创建一个新的流,它包含两个流的元素,以某种任意的方式混合,也许是
"aaa","bbb","A","ccc","B","C"
,这不是你所要求的 -- 只是为了完整地提及它。你想要的是创建一个连接的流,通过
然后你可以用
RichCoFlatMapFunction
或KeyedCoProcessFunction
来处理这些字符串,计算出一种连接,将这些字符串粘合在一起。你会在flink文档中找到关于连接流的教程,在教程附带的训练练习中也有一个相当接近的例子。