En esta lección aprenderemos a usar Spark Streaming para procesar flujos de datos en tiempo real, como logs, redes sociales o sensores IoT.
from pyspark.streaming import StreamingContext
# Crear StreamingContext con batch de 5 segundos
ssc = StreamingContext(spark.sparkContext, 5)
# Leer flujo desde socket en el puerto 9999
lines = ssc.socketTextStream("localhost", 9999)
# Contar palabras
words = lines.flatMap(lambda line: line.split(" "))
pairs = words.map(lambda word: (word, 1))
counts = pairs.reduceByKey(lambda a, b: a + b)
counts.pprint()
ssc.start()
ssc.awaitTermination()
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
spark = SparkSession.builder.appName("SparkKafka").getOrCreate()
# Leer desde Kafka
df = spark.readStream.format("kafka") \
.option("kafka.bootstrap.servers", "localhost:9092") \
.option("subscribe", "topic_test") \
.load()
# Procesar mensajes
mensajes = df.selectExpr("CAST(value AS STRING)")
consulta = mensajes.writeStream \
.outputMode("append") \
.format("console") \
.start()
consulta.awaitTermination()
Spark Streaming permite procesar datos en movimiento y reaccionar en tiempo real a eventos del mundo real. Es una herramienta poderosa para construir aplicaciones inteligentes y escalables en Big Data.