从flink文档中,我知道循环可以用迭代操作符实现。由于flink代码是延迟计算的,所以不可能使用while循环计算终止条件。
但是对于像这样的批量迭代 initial.iterate(10){...}
,我们可以使用while循环来达到同样的效果吗?
var dataset = ...
while (i < 10) {
dataset = step(dataset);
}
从flink文档中,我知道循环可以用迭代操作符实现。由于flink代码是延迟计算的,所以不可能使用while循环计算终止条件。
但是对于像这样的批量迭代 initial.iterate(10){...}
,我们可以使用while循环来达到同样的效果吗?
var dataset = ...
while (i < 10) {
dataset = step(dataset);
}
1条答案
按热度按时间0h4hbjxa1#
使用内置的批量迭代操作符和使用while循环构造计划的区别在于生成的执行计划。
while循环:
批量迭代:
根据您正在运行的迭代的数量,批量迭代计划的大小可以大大减小。更小的计划意味着flink需要更少的时间来优化和安排计划。
此外,优化器可以利用有关显式迭代的信息,并将每次迭代中使用的数据集缓存在内存中。