¿Cómo funciona Windows en Spark Structured Streaming?

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 4 minutos
Temas en este post:

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.

¿Qué es Spark Structured Streaming?

Windows en Spark Structured Streaming se desarrolla dentro del amplio entorno de Apache Spark, específicamente, en su arquitectura de Spark Stack, de forma que antes de entrar en materia, te exponemos su contexto.

Spark Structured Streaming es un motor de streaming processing construido sobre el motor de SparkSQL. Su principal fin radica en que permite expresar el procesamiento en streaming, al igual que se logra con el procesamiento en batch.

Por otra parte, el desarrollo de las Joins en Spark Structured Streaming se produce dentro de la arquitectura de Spark Stack, el sistema informático de la arquitectura de Apache Spark que posee una gran variedad de componentes que logran potenciarse por medio del motor central del sistema.

Todo ello, se desarrolla dentro del sistema de computación de Spark que es un sistema de computación basado en Hadoop Map Reduce y consiste en dividir y paralelizar los jobs para trabajar con datos de forma distribuida. Allí podrás contar con las siguientes características y funciones de Spark Structured Streaming:

  • Cuenta con un sistema da garantías de procesamiento end-to-end exactly-once con tolerancia a fallos y con mecanismos de checkpointin.
  • Proporciona un sistema de procesamiento en stream rápido y tolerante a los fallos, con garantías de exactly-one, sin que el usuario tenga que saber que se encuentra trabajando sobre un stream de datos.
  • Para el procesamiento usa un motor de procesamiento en micro-batch que procesa los pequeños lotes de datos, con latencias end-to-end de 100 milisegundos y proporciona garantías exactly-one.
  • Spark2.3 añade el modo Continuos Processing que permite latencias de un milisegundo y cuenta con garantías atleast-once.

¿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()

¿Cómo funciona Windows en Spark Structured Streaming?

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:

¿Cómo funciona Windows en Spark Structured Streaming?

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.
¿Cómo funciona Windows en Spark Structured Streaming?

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.

¿Cómo funciona Windows en Spark Structured Streaming?

Aprende más sobre el manejo Big Data

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!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

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