由于对火花中的转换进行了懒惰的评估,我们有什么方法可以急切地执行转换?
是否需要进行任何配置更改?
例如,我有以下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))
按照正常执行,一旦调用一个动作,所有转换都会执行。
这些转换中的任何一个都可以在执行操作之前执行吗?
答案 0 :(得分:1)
我会拒绝。如果急切地执行了任何一个api,那么可以将其称为操作而不是转换。 Reducebykey是一个转换,而reduce是一个动作。 我没有提到延迟评估的原因是什么,因为您可能已经意识到这一点。