¿Cómo funciona Deduplication 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

Apache Spark se ha posicionado como uno de los sistemas de computación más empleados en el mundo Big Data. Por esta razón, un buen data scientist debe saber identificar las dinámicas, procesos y herramientas que ofrece para llevar a cabo un estudio adecuado de los macrodatos. Por ejemplo, es importante conocer cómo funciona Deduplication en Spark Structured Streaming dentro de su flujo de datos.

Esta es una de las dinámicas de la arquitectura propuesta por parte de Apache Spark a partir de su proceso de Spark Structured Streaming. Por ello, conocerlo resulta imprescindible y, por medio de este post, te podrás instruir sobre cómo funciona Deduplication en Spark Structured Streaming.

¿Qué es Spark Structured Streaming?

Antes de abordar en qué consiste Deduplication en Spark Structured Streaming, te haremos un breve recorrido por el entorno en el que se desarrolla.

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

Todo esto se desarrolla dentro del sistema de computación de Spark, que se trata de un sistema de computación basado en Hadoop Map Reduce. Su objetivo consiste en dividir y paralelizar los jobs para trabajar con datos de forma distribuida.

Por otra parte, su desenvolvimiento 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 a través del motor central del sistema. En él podrás encontrar las siguientes características y funciones de Spark Structured Streaming:

  • El sistema da garantías de procesamiento end-to-end exactly-once con tolerancia a fallos que utiliza mecanismos de checkpointin.
  • Structured Streaming proporciona un sistema de procesamiento en stream rápido, escalable, tolerante a los fallos y con garantías de exactly-one, sin que el usuario tenga que saber que se encuentra trabajando sobre un stream de datos.
  • Los datos se procesan utilizando un motor de procesamiento en micro-batch: procesa pequeños lotes de datos, con latencias end-to-end de 100 milisegundos y proporciona garantías exactly-one.
  • Spark2.3 añade un modo llamado Continuos Processing, que permite latencias de un milisegundo y proporciona garantías atleast-once.
¿Cómo funciona Deduplication en Spark Structured Streaming?

¿Cómo funciona Deduplication en Spark Structured Streaming?

El sistema de computación de Apache Spark soporta deduplicaciones de eventos. Esto quiere decir que la Deduplication en Spark Structured Streaming se utiliza como una estrategia que se encarga de descartar los eventos, valores y datos que se encuentran repetidos en el procesamiento de la información.

Por otra parte, esto se desarrolla según dos alternativas que te compartimos a continuación:

  • Con marca de agua (watermark): esta es la query que usa el watermark para borrar los datos antiguos del estado, es decir, donde ya no se esperan más duplicados.
  • Sin marca de agua: este tipo no posee los limites para definir cuándo un récord duplicado se recibe.

Por otra parte, la Deduplication en Spark Structured Streaming guarda todos los récords pasados en el estado. A continuación, te exponemos cómo funciona la sintaxis del comando en el desarrollo de la consola:

val streamingDf = spark.readStream. … // columns: guid, eventTime, …
// Without watermark using guid column
streamingDf.dropDuplicates(«guid»)
// With watermark using guid and eventTime columns
streamingDf.withWatermark(«eventTime», «10 seconds»)
.dropDuplicates(«guid», «eventTime»)

Como podrás notar, en este ejemplo se estipula cuál será la columna en la que se analizarán los duplicados por medio de su nombre. Además, se inscribe cuál es la función de los valores según la presencia o ausencia de la marca de agua en estos valores.

Por último, uno de los comandos más importantes es el uso de «evenTime» que remite al uso duplicado de determinada información, de manera que cada vez que esta sale de más será eliminada.

Principales funciones de Deduplication en Spark Structured Streaming

A continuación, te compartimos cuáles son las principales funciones que desempeña Deduplication en Spark Structured Streaming como parte del mundo del procesamiento Big Data:

  • Su objetivo principal radica en suprimir los datos o valores duplicados. Estos pueden ser entradas, eventos, mensajes u órdenes, entre otros.
  • Es una API (Interfaz de Programación de Aplicaciones) del módulo intermedio del Apache Spark.
  • Una de sus funciones consiste en la instauración de marcas de agua (watermarks) para limitar el flujo de los datos.
  • Por otra parte, también puede presentarse sin marcas de agua (watermarks), sin embargo, al no establecer un límite de trabajo, este proceso puede tardar mucho más.
  • Puede encargarse de establecer una columna completa que designe la función de duplicados.

¿Cómo aprender más del Big Data?

Por medio de este post, te hemos expuesto cómo funciona Deduplication en Spark Structured Streaming como parte del sistema de computación Apache Spark. Por ello, debes tener en cuenta que este es un mundo amplio del desarrollo del Big Data por medio de esta serie de herramientas y serivios de Spark. De manera que, para convertirte en un experto, debes continuar aprendiendo sobre el procesamiento de los macrodatos.

Si aún no sabes cómo, en KeepCoding te ofrecemos el Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. Por medio de este bootcamp, aprenderás las teorías del aprendizaje automático con énfasis en algoritmos de regresión y clasificación. De manera que, con el tiempo, serás capaz de conocer las ventajas y desventajas de los distintos algoritmos analizados. Además, llegarás a las buenas prácticas en el entrenamiento de modelos de aprendizaje automático, gracias a que se fusionarán los fundamentos con ejemplos prácticos. ¡Inscríbete y empieza ahora!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

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