【发布时间】:2015-07-25 23:50:10
【问题描述】:
我在本地系统上使用 Spark 1.4.0。每当我创建一个 RDD 并通过 Spark 的 Scala shell 调用它时,它都可以正常工作。但是当我创建一个独立的应用程序并在 RDD 上调用“收集”操作时,我看不到结果,尽管运行期间的 Spark 消息说某些字节数已设置为驱动程序:-
INFO Executor: Finished task 0.0 in stage 0.0 (TID 0). 1991 bytes result sent to driver
INFO Executor: Finished task 1.0 in stage 0.0 (TID 1). 1948 bytes result sent to driver
这是代码:-
object Test
{ def main(args:Array[String])
{
val conf = new SparkConf()
val sc = new SparkContext(conf)
val rdd1 = sc.textFile("input.txt")
val rdd2 = rdd1.map(_.split(",")).map(x=>( (x(0),x(1)) ))
rdd2.collect
}
}
如果我将最后一条语句更改为以下语句,它确实会显示结果:-
rdd2.collect.foreach(println)
所以问题是,为什么只调用 'collect' 不打印任何东西?
【问题讨论】:
标签: apache-spark rdd