Apache flink Flink和#x27之间的区别是什么;s批量迭代运算符和while循环?
从中,我知道循环可以用迭代操作符实现。由于Flink代码是惰性计算的,所以不可能使用while循环计算终止条件 但是对于像Apache flink Flink和#x27之间的区别是什么;s批量迭代运算符和while循环?,apache-flink,Apache Flink,从中,我知道循环可以用迭代操作符实现。由于Flink代码是惰性计算的,所以不可能使用while循环计算终止条件 但是对于像initial.iterate(10){…}这样的批量迭代,我们可以使用while循环来实现同样的效果吗 var dataset = ... while (i < 10) { dataset = step(dataset); } var数据集=。。。 而(i
initial.iterate(10){…}
这样的批量迭代,我们可以使用while循环来实现同样的效果吗
var dataset = ...
while (i < 10) {
dataset = step(dataset);
}
var数据集=。。。
而(i<10){
数据集=步骤(数据集);
}
使用内置批量迭代操作符和使用while循环构建计划的区别在于生成的执行计划
While循环:
StartDS -> Step1 -> Step2 -> ... -> Step10 -> ResultDS
批量迭代:
StartDS -> IterationHead -> Step -> IterationTail -> ResultDS
^ |
\-----------(9 times)-----/
根据您正在运行的迭代的数量,批量迭代计划的大小可以大大减小。更小的计划意味着Flink需要更少的时间来优化和安排计划
此外,优化器可以利用有关显式迭代的信息,并将每次迭代中使用的数据集缓存在内存中