我有一个迭代函数,该函数会生成一些我想在RDD中输出的数据。建造它的最佳方法是什么?我可以提出两种解决方案
1)
var results = sparkSession.sparkContext.emptyRDD[String]
for (values <- values) {
results = results.union(sparkSession.sparkContext.parallelize[String]Seq(performSomething(value))
}
2)
var results = Seq[String]
for (values <- values) {
results = results += performSomething(value)
}
sparkSession.sparkContext.parallelize[String](results)
我猜第一种方法会比较慢,但可能会减少驱动程序上的内存消耗,第二种方法会更快,但是在并行化所有数据之前,这些数据将在驱动程序中吗?我说得对吗?
还有第三种更好的方法吗?
谢谢!