Buscando valores distintos em uma coluna usando o Spark DataFrame
Usando o Spark 1.6.1, preciso buscar valores distintos em uma coluna e, em seguida, executar alguma transformação específica em cima dela. A coluna contém mais de 50 milhões de registros e pode aumentar.
Eu entendo que fazer umdistinct.collect()
trará a chamada de volta ao programa do driver. Atualmente, estou executando esta tarefa como abaixo: existe uma abordagem melhor?
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()