java - 如果下游有多个operator,flink会发送重复记录吗
问题描述
如果我运行如下示例 flink 应用程序:
DataStream ds;
ds.map(new MapFunction1()).print();
ds.map(new MapFunction2()).print();
flink 会在内部为每个记录从ds发送两次到下游操作符(MapFunction1 和 MapFunction2)吗?
我知道 flink 中的数据交换发生在任务管理器级别而不是操作员级别。
解决方案
是的,试试:
StreamExecutionEnvironment environment =
StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<Long> someIntegers = environment.generateSequence(0, 0);
someIntegers.map(aLong -> aLong + 1).print();
someIntegers.map(aLong -> aLong + 2).print();
environment.execute();
输出:
1> 1
1> 2
推荐阅读
- jquery - 单击剑道网格单元格和选项卡时,网格失去焦点
- node.js - Node.js 用cheerio 抓取没有返回值
- python - 如何修复我的代码,以便它允许我获取输入命令的用户 ID?
- r - 使用索引递增到矩阵
- lua - 我找不到这些错误发生在哪里,甚至找不到修复它们的意义
- python - 有没有办法在python中迭代地改变列表元素的位置?
- javascript - Express - 是否可以根据渲染视图中按钮的值影响对象?
- python-3.x - 在 MacOS 中最大化 Python PyQt5 打开窗口(全屏)
- npm - 我可以使用 Sudo 安装 NPM 包吗?
- ios - 在 iPad 上隐藏的 TabBar (Swift 4)