Извлечение различных значений в столбце с использованием Spark DataFrame

При использовании версии Spark 1.6.1 мне нужно получить различные значения в столбце, а затем выполнить какое-то конкретное преобразование поверх него. Столбец содержит более 50 миллионов записей и может увеличиваться в размерах.
Я понимаю что делаюdistinct.collect() вернет вызов в программу драйвера. В настоящее время я выполняю эту задачу, как показано ниже, есть ли лучший подход?

 import sqlContext.implicits._
 preProcessedData.persist(StorageLevel.MEMORY_AND_DISK_2)

 preProcessedData.select(ApplicationId).distinct.collect().foreach(x => {
   val applicationId = x.getAs[String](ApplicationId)
   val selectedApplicationData = preProcessedData.filter($"$ApplicationId" === applicationId)
   // DO SOME TASK PER applicationId
 })

 preProcessedData.unpersist()  

Ответы на вопрос(1)

Ваш ответ на вопрос