scala - parallelize - introducción a apache spark pdf
El método reduceByKey no se encuentra en Scala Spark (3)
Intenta ejecutar http://spark.apache.org/docs/latest/quick-start.html#a-standalone-app-in-scala desde el origen.
Esta línea:
val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
está arrojando un error
value reduceByKey is not a member of org.apache.spark.rdd.RDD[(String, Int)]
val wordCounts = logData.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
logData.flatMap(line => line.split(" ")).map(word => (word, 1))
devuelve un MappedRDD pero no puedo encontrar este tipo en http://spark.apache.org/docs/0.9.1/api/core/index.html#org.apache.spark.rdd.RDD
Estoy ejecutando este código desde la fuente de Spark así que ¿podría ser un problema de classpath? Pero las dependencias requeridas están en mi classpath.
Debe importar las conversiones implícitas de SparkContext
:
import org.apache.spark.SparkContext._
Usan el patrón ''proxenetismo de mi biblioteca'' para agregar métodos a los RDD de tipos específicos. Si es curioso, vea SparkContext:1296
En realidad, puedes encontrarlo en la clase PairRDDFunctions. PairRDDFunctions es una clase que contiene funciones adicionales disponibles en RDD de pares (clave, valor) a través de una conversión implícita.
https://spark.apache.org/docs/2.1.0/api/scala/index.html#org.apache.spark.rdd.PairRDDFunctions
Si usa maven en ScalaIDE, simplemente resolví el problema actualizando la dependencia de la versión 1.2 de chispa a la versión 1.3.