0

Spark RDD.persist(..) 可以帮助避免重复的 RDD 评估。

Flink 中是否有相同的功能?

其实我想知道如果我像下面这样编码,Flink 会评估dataStream一次或两次?

val dataStream = env.addSource(...).filter(...).flatMap(...)

val s1 = dataStream.keyBy(key1).timeWindow(...).aggregate(..)

val s2 = dataStream.keyBy(key2).timeWindow(...).reduce(...)
4

1 回答 1

1

persist在 Flink 中不需要,因为DataStream在其上应用了多个算子,只评估一次,并将所有传出消息复制到每个下游算子。

您的情况下的程序执行为

                                 /-hash-> keyBy(key1) -> ...
 Source -> Filter -> FlatMap ->-<
                                 \-hash-> keyBy(key2) -> ...
于 2020-11-19T07:53:39.757 回答