Lo que vamos a hacer es un proceso que escuche lo que escribimos con "nc" en el puerto 9999. Y luego vamos a contar, es decir vamos a contar las palabras.
Iniciamos spark-shell :
./spark-shell
Luego debemos importar todos los objetos para hacer streaming:
import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._
//Ahora hacemos el contexto de streaming, utilizando el contexto de mi aplicación. A la vez //especificamos el periodo de tiempo que se debe procesar los datos:
val ssc = new StreamingContext(sc, Seconds(10))
// Creamos el DStream para localhost:9999
val lines = ssc.socketTextStream("localhost", 9999)
// indicamos las tareas a realizar con los datos.
val words = lines.flatMap(_.split(" "))
val pairs = words.map(word => (word, 1))
val wordCounts = pairs.reduceByKey(_ + _)
// Imprima los primeros elementos de cada RDD generado en este DStream para la consola
wordCounts.print()
ssc.start() // comenzamos
ssc.awaitTermination() // Espere a que termine el cálculo
Y listo, ahora si vamos a otra consola y escribimos :
nc -lk 9999
Y eso es todo!!!