A função de mapa do RDD não está sendo chamada no Scala Spark
Quando eu chamo a função de mapa de um RDD não está sendo aplicada. Funciona como esperado para uma lista scala.collection.immutable.List, mas não para um RDD. Aqui está um código para ilustrar:
val list = List ("a" , "d" , "c" , "d")
list.map(l => {
println("mapping list")
})
val tm = sc.parallelize(list)
tm.map(m => {
println("mapping RDD")
})
O resultado do código acima é:
mapping list
mapping list
mapping list
mapping list
Mas observe "mapeamento RDD" não é impresso na tela. Por que isso está ocorrendo?
Isso faz parte de um problema maior, no qual estou tentando preencher um HashMap a partir de um RDD:
def getTestMap( dist: RDD[(String)]) = {
var testMap = new java.util.HashMap[String , String]();
dist.map(m => {
println("populating map")
testMap.put(m , m)
})
testMap
}
val testM = getTestMap(tm)
println(testM.get("a"))
Este código imprime nulo
Isso é devido a uma avaliação preguiçosa?