Spark:逐行构建RDD的最佳方法

时间:2018-11-19 17:31:14

标签: scala apache-spark rdd

我有一个迭代函数,该函数会生成一些我想在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)

我猜第一种方法会比较慢,但可能会减少驱动程序上的内存消耗,第二种方法会更快,但是在并行化所有数据之前,这些数据将在驱动程序中吗?我说得对吗?

还有第三种更好的方法吗?

谢谢!

0 个答案:

没有答案