【发布时间】:2015-03-02 07:32:20
【问题描述】:
我在 spark shell 中编写了这个程序
val array = sc.parallelize(List(1, 2, 3, 4))
array.foreach(x => println(x))
这会打印一些调试语句,但不会打印实际数字。
下面的代码可以正常工作
for(num <- array.take(4)) {
println(num)
}
我知道take 是一个动作,因此会导致 spark 触发惰性计算。
但是 foreach 应该以同样的方式工作......为什么 foreach 没有从 spark 中带回任何东西并开始进行实际处理(退出惰性模式)
如何使 rdd 上的 foreach 工作?
【问题讨论】:
标签: apache-spark