Apache Flink 进程流多次



我正在尝试使用Apache Flink使用两种不同的算法来处理数据流。我的伪代码如下:

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(( 都没有完全按照我的意愿做。是否有从源多次创建流的替代方法?谢谢你的帮助。

">

克隆"流非常简单,不需要专门的运算符。您可以在同一DataStream上应用多个转换。所有下游转换都将使用完整的流。

因此,在您的示例中,您可以:

env = getEnvironment();
DataStream<Event> inputStream = getInputStream();
outputOne = inputStream.map(func1); // apply 1st transformation
outputTwo = inputStream.map(func2); // apply 2nd transformation
...
outputOne.addSink(sink1);
outputTwo.addSink(sink2);
env.execute();

相关内容

  • 没有找到相关文章

最新更新