Flink 中 Spark RDD.persist(..) 的任何等效功能?
Any equivalent feature of Spark RDD.persist(..) in Flink?
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(...)
在 Flink 中不需要 persist
,因为应用多个运算符的 DataStream
被评估一次并将所有传出消息复制到每个下游运算符。
你的程序执行为
/-hash-> keyBy(key1) -> ...
Source -> Filter -> FlatMap ->-<
\-hash-> keyBy(key2) -> ...
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(...)
在 Flink 中不需要 persist
,因为应用多个运算符的 DataStream
被评估一次并将所有传出消息复制到每个下游运算符。
你的程序执行为
/-hash-> keyBy(key1) -> ...
Source -> Filter -> FlatMap ->-<
\-hash-> keyBy(key2) -> ...