У меня есть итеративная функция, которая генерирует некоторые данные, которые я хочу выводить в СДР.Каков наилучший способ его построения?Я могу предложить два решения:
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)
Я думаю, что первый подход будет медленнее, но, вероятно, уменьшит потребление памяти наДрайвер и второй подход будут быстрее, но перед распараллеливанием все данные будут в драйвере?Я прав?
Есть ли третий подход лучше?
Спасибо!