Módulo: Structured Streaming
Este módulo forma parte del curso de PySpark. .
Structured Streaming es el motor de procesamiento en tiempo real de Spark. A diferencia de los enfoques tradicionales de streaming, utiliza la misma API de DataFrames que el procesamiento por lotes, lo que facilita la reutilización de código y la curva de aprendizaje.
El modelo de ejecución es microbatch por defecto: Spark procesa los datos en pequeños lotes a intervalos configurables mediante trigger. También existe el modo continuo para latencias muy bajas. Las fuentes de datos disponibles incluyen archivos en directorios, sockets TCP, rate (para pruebas) y Apache Kafka:
# Leer un stream desde Kafka
stream_df = spark.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", "localhost:9092") \
.option("subscribe", "eventos") \
.load()
# Procesar: deserializar el valor y agregar por ventana de tiempo
from pyspark.sql.functions import window, col, from_json
from pyspark.sql.types import StructType, StringType, DoubleType
schema = StructType().add("producto", StringType()).add("precio", DoubleType())
df_parsed = stream_df.select(from_json(col("value").cast("string"), schema).alias("data")).select("data.*")
df_ventana = df_parsed.groupBy(window(col("timestamp"), "5 minutes"), "producto").sum("precio")
# Escribir el resultado
query = df_ventana.writeStream.outputMode("update").format("console").start()
Los watermarks gestionan los datos que llegan con retraso, definiendo cuánto tiempo esperar antes de considerar una ventana temporal completa. Los modos de salida append, complete y update controlan qué filas se emiten en cada microbatch. El checkpointing garantiza la recuperación ante fallos con semántica exactly-once.
Otros módulos de este curso
Structured Streaming
Todos los módulos del curso
Navega entre los módulos de PySpark
Structured Streaming
Estás aquíExplora más sobre PySpark
Descubre más recursos de PySpark
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, PySpark es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.