由于我想执行针对Flink编写的Scala程序的性能测量,我希望您可以逐步执行它。
execute first operator; materialize result;
execute second operator; materialize result;
...
等等。原始代码:
var filename = new String("<filename>")
var text = env.readTextFile(filename)
var counts = text.flatMap { _.toLowerCase.split("\\W+") }.map { (_, 1) }.groupBy(0).sum(1)
counts.writeAsText("file://result.txt", WriteMode.OVERWRITE)
env.execute()
我希望 var counts = text.flatMap { _.toLowerCase.split("\\W+") }.map { (_, 1) }.groupBy(0).sum(1)
的执行可以逐步进行。
每个运算符后都调用 env.execute()
是正确的做法吗?
还是在每个操作后写入到 /dev/null
,即调用 counts.writeAsText("file:///home/username/dev/null", WriteMode.OVERWRITE)
,然后调用 env.execute()
更好一些?Flink 是否真正有类似于 NullSink
的东西来达到这个目的?
编辑:我在集群上使用 Flink Scala Shell,并将应用程序设置为使用 parallelism=1 执行以上代码。