¿Cómo funciona Windows en Spark Structured Streaming?

| Última modificación: 6 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Identificar cómo funciona Windows en Spark Structured Streaming dentro del sistema de Apache Spark es imprescindible en el ecosistema de lenguajes y herramientas del Big Data, puesto que estos procesos para la clasificación de la información son fundamentales para almacenar, manipular y analizar los macrodatos.

De hecho, esta es una de las herramientas de uno de los seis fundamentos de Apache Spark que llevan a cabo el flujo de los datos durante el análisis de los mismos. Es por este motivo que, en este post, te explicamos cómo funciona Windows en Spark Structured Streaming para el manejo de los macrodatos.

¿Cómo funciona Windows en Spark Structured Streaming?

Windows en Spark Structured Streaming es una forma de clasificar el procesamiento de los datos según la delimitación de tiempo que se establezca. Esta herramienta funciona basándose en una serie de intervalos de tiempo que agilizan el manejo de la información.

Por ejemplo, podrás agregar los datos en una ventana de diez minutos que se desliza cada cinco minutos, de manera que el resultado de las tablas se envía basada en el modo que se utilice. A continuación puedes ver su desarrollo:

import spark.implicits._
val words = … // streaming DataFrame of schema
{ timestamp: Timestamp, word: String }
val windowedCounts = words
.groupBy(
window($”timestamp”, “10 minutes”, “5 minutes”),
$”word”
)
.count()

Por otra parte, con Windows en Spark Structured Streaming en ocasiones se pueden recibir datos antiguos, de forma que puede mantener en memoria un estado parcial de las agregaciones durante un gran periodo de tiempo. Esto supone una gran ventaja, ya que se pueden agregar eventos que llegan con retrasos.

Existe un límite

Ejecutar esta consulta durante días puede alcanzar el límite de los datos que se pueden
almacenar.
Por ello, el sistema necesita saber cuándo puede descartar datos antiguos y, para ello, esta herramienta emplea el watermarking o marca de agua.

Ahora, te exponemos un ejemplo en el que se permite recibir los datos con una antigüedad máxima de diez minutos. En la consola se inscribiría de la siguiente forma:

val windowedCounts = words
.withWatermark(“timestamp”, “10 minutes”)
.groupBy(
window($”timestamp”, “10 minutes”, “5 minutes”),
$”word”)
.count()

En cuanto a su visualización, este ejemplo devendría en una gráfica como la siguiente:

Condiciones

Para la implementación de Windows en Spark Structured Streaming se necesita contar con ciertas condiciones que te exponemos a continuación:

  1. El modo Append/Update.
  2. La agregación con tiempo o usando window.
  3. Usar withWatermark en la misma columna de tiempo que la agregación.
  4. Antes que la agregación, debes configurar el withWatermark.

Por último, debes tener en cuenta que, al usar el modo Append, los datos solamente se reportan cuando expira el watermark (marca de agua), como en el ejemplo que te exponemos a continuación. En este ejemplo, la línea roja designa los valores que se han ignorado en la cuenta por la tardanza y expiración de la marca de agua.

Ahora que sabes cómo funciona Windows en Spark Structured Streaming podrás poner en práctica cada una de sus funciones, de manera que la organización y visualización de datos te ayuden a optimizar tu análisis. Ya puedes generar propuestas y estrategias de desarrollo cada vez más acertadas y efectivas.

Para continuar con tu desarrollo y convertirte en un experto en el manejo de Big Data, desde KeepCoding te presentamos nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Big Data. Te ayudará a tener una visión global del mundo Big Data y explorarás de forma tanto teórica como práctica cómo identificar las alternativas de gestión de datos más apropiadas para los estudios de los macrodatos, como métodos de inteligencia artificial, aprendizaje automático, estadística y sistemas de bases de datos. ¡Apúntate y conviértete en un data scientist profesional en menos de un año!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado