我正在尝试使用apacheflink来处理使用两种不同算法的数据流。我的伪代码如下:
env = getEnvironment();
DataStream<Event> inputStream = getInputStream();
// How to replicate the input stream?
Array[DataStream<Event>] inputStreams = inputStream.clone()
// apply different operations on the replicated streams
outputOne = inputStreams[0].map(func1);
outputTwo = inputStreams[1].map(func2);
...
outputOne.addSink(sink1);
outputTwo.addSink(sink2);
env.execute();
我用flink文档做了一些研究。似乎没有克隆流的概念。datastream.iterate()和datastream.split()都不是我想要的。除了从源多次创建流之外,还有其他方法吗?谢谢你的帮助。
1条答案
按热度按时间4szc88ey1#
“克隆”流非常简单,不需要专用的操作符。您可以在同一个对象上应用多个变换
DataStream
. 所有下游转换都将消耗整个流。所以在你的例子中你做到了: