如何急切地进行火花转换?

时间:2018-08-30 17:46:17

标签: scala apache-spark spark-streaming lazy-evaluation scala-collections

由于对火花中的转换进行了懒惰的评估,我们有什么方法可以急切地执行转换?

是否需要进行任何配置更改?

例如,我有以下scala代码示例:

val args = Array("/Users/kvkv/Documents/backups/h/FeedsData.txt",
                "/Users/kvkv/Documents/backups/h/spark/output/FeedsDataOutput")
val conf = new SparkConf();
val sc = new SparkContext("local", "FeedsData.txt", conf);
val input= sc.textFile(args(0));
val feedsRdd = input.filter(line => line.contains("Feeds Info : "))
val feedswords = feedsRdd.flatMap(line => line.split(" "));
val counts = feedswords.map(word => (word, 1)).reduceByKey{case (x, y) => x+y}
counts.saveAsTextFile(args(1))

按照正常执行,一旦调用一个动作,所有转换都会执行。

这些转换中的任何一个都可以在执行操作之前执行吗?

1 个答案:

答案 0 :(得分:1)

我会拒绝。如果急切地执行了任何一个api,那么可以将其称为操作而不是转换。 Reducebykey是一个转换,而reduce是一个动作。 我没有提到延迟评估的原因是什么,因为您可能已经意识到这一点。