apache-flink - Flink 中 Spark RDD.persist(..) 的任何等效功能?
问题描述
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(...)
解决方案
persist
在 Flink 中不需要,因为DataStream
在其上应用了多个算子,只评估一次,并将所有传出消息复制到每个下游算子。
您的情况下的程序执行为
/-hash-> keyBy(key1) -> ...
Source -> Filter -> FlatMap ->-<
\-hash-> keyBy(key2) -> ...
推荐阅读
- android - 构建发布后,Flutter 应用程序卡在白屏上
- javascript - 如何从 Firebase 存储下载 pdf
- django - 在基于 Django 的 GraphQL API 中为 postgres 表创建全局搜索字段的最佳方法?
- reactjs - vscode tsconfig 值保持重置为默认值
- javascript - 如何将数据存储在可从任何地方访问的 nextjs 中
- reactjs - 在 React 应用程序中使用标准类是不好的做法吗?
- azure-devops - 如何选择 google play 应用签名首选项以轻松将其集成到 Azure DevOps 发布管道中
- javascript - 获取 Pusher 频道的最新活动
- mongodb - Mongo 和 Mongoose - .find() 返回不同的值
- vue.js - 生产期间的Vue CLI websocket错误