【发布时间】:2017-11-08 13:58:42
【问题描述】:
假设我们有以下 Scala 程序:
val inputRDD = sc.textFile("log.txt")
inputRDD.persist()
val errorsRDD = inputRDD.filter(lambda x: "error" in x)
val warningsRDD = inputRDD.filter(lambda x: "warning" in x)
println("Errors: " + errorsRDD.count() + ", Warnings: " + warningsRDD.count())
我们创建一个简单的 RDD,将其持久化,对 RDD 执行两次转换,最后得到一个使用 RDD 的操作。
调用 print 时,执行转换,每个转换当然是并行的,具体取决于集群管理。
我的主要问题是:这两个动作和转换是并行执行还是顺序执行?还是errorsRDD.count()先执行再warningsRDD.count(),依次执行?
我也想知道在这个例子中使用持久化是否有任何意义。
【问题讨论】:
标签: scala apache-spark rdd