¿Qué es RDD (Resilient Distributed Datasets)?

Autor: | Última modificación: 8 de junio de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

RDD (Resilient Distributed Datasets) es uno de los componentes que se encuentran en el Spark Core, el corazón del sistema de computación de Apache Spark. Este es uno de los servicios más reconocidos que ofrece, ya que es ideal para optimizar la gestión de los macrodatos y analizar los resultados de la información.

Por ello, conocer cómo se desenvuelve para, posteriormente, llevarlo a la práctica en tu procesamiento de los datos es de suma importancia. De manera que, en el desarrollo de este post, te exponemos qué es RRD (Resilient Distributed Datasets) para el sistema de computación Apache Spark.

¿Qué es RDD (Resilient Distributed Datasets)?

El sistema de Apache Spark trabaja con los datos bajo un concepto denominado RDD (Resilient Distributed Datasets) o Conjuntos de datos distribuidos resistentes, en español.
Por otra parte, los RDD (Resilient Distributed Datasets) poseen unas características específicas que ayudan a procesar los datos de una forma más eficaz. A continuación, te exponemos cuáles son estas características:

  • Inmutables: estos no se pueden modificar una vez han sido creados.
  • Distribuidos: hace referencia a los RDD (Resilient Distributed Datasets) que están divididos en particiones que están repartidas en el clúster.
  • Resilientes: en caso de perder una partición, esta se regenera automáticamente.

Por otra parte, los RDDs se transforman, de manera que se crean nuevos RDD (Resilient Distributed Datasets) y estas transformaciones se aplican a los datos.

En definitiva, un RDD (Resilient Distributed Datasets) es trabajar con el conjunto de datos. Las transformaciones pueden ser de dos tipos:

  • Narrow: no necesitan intercambio de información entre los nodos del clúster.
  • Wide: necesitan intercambio de información entre los nodos del clúster.
¿Qué es RDD (Resilient Distributed Datasets)? 1

Por otra parte, existen distintas formas de generar RDDs:

  • Obtener datos de un fichero.
  • Distribución de datos desde el driver.
  • Transformar un RDD para crear un nuevo RDD.

En suma, los RDD (Resilient Distributed Datasets) permiten dos tipos de operaciones, que son:

  • Transformaciones: consiste en generar un RDD a partir de otro RDD. Nos
    permite trabajar con datos y generar nuevos, como map, flatMap, filter…
  • Acciones: suelen ser puntos finales de procesamiento, devuelven un valor al
    driver o envían datos a una fuente externa, como count, collect, saveAsTextFile…

RDD: Ciclo de vida

A continuación, te compartimos cómo se muestra el ciclo de vida de los RDD (Resilient Distributed Datasets), el cual pasa de la Generación a las Transformaciones, en las que se genera un nuevo RDD. Posteriormente, en el Caché en el que se realizan procesos de la memoria y, finalmente, en las Acciones, donde se recolectan los datos al driver.

¿Qué es RDD (Resilient Distributed Datasets)? 2

RDD: Transformaciones/Lazy evaluation

Las transformaciones en RDD se evalúan perezosamente, lo que significa que Apache Spark no comenzará a ejecutarse hasta que se muestre o se lance una acción. En lugar de pensar en un RDD que contiene datos, es mejor pensar en un conjunto de instrucciones sobre cómo calcular los datos que construimos a través de transformaciones.
Por otra parte, Apache Spark utiliza la evaluación diferida para reducir el número de pasadas
para hacerse cargo en nuestros datos agrupando las operaciones.

RDD: Key/Value Pairs

Estos son los RDDs en los que cada uno de los elementos de la colección es una dupla de dos elementos: CLAVE > VALOR.

  • En primer lugar, estos pueden generarse así:

val keyValuePairRDD = sc.parallelize(Seq((1,2), (2,3)))

  • En segunda instancia, pueden construirse mediante transformaciones:

val words = sc.parallelize(List(«avion», «tren», «barco», «coche», «moto», «bici»), 2)
val rddWithKey = words.keyBy(_.length) // se usa la longitud de la palabra como clave
rddWithKey.groupByKey.collect()

RDD: Acciones

Las acciones en Apache Spark provocan el procesamiento de datos. De manera que, cuando se ejecuta una acción, se aplican todas las transformaciones planificadas y finalmente la acción.

Por otra parte, las acciones provocan que los datos se evalúen desde el origen aplicando todas las transformaciones.

múltiples acciones === múltiples evaluaciones de los datos desde el origen

Por último, existen acciones que mueven datos al proceso del driver y otras que se ejecutan directamente en los executors. Te aconsejamos no llevar demasiados datos al driver, puesto que se cuenta con pocos recursos.

¿Cómo seguir aprendiendo sobre los macrodatos?

En el transcurso de este post, desde KeepCoding te hemos expuesto qué es RRD (Resilient Distributed Datasets) como parte del procesamiento de los macrodatos. Sin embargo, recuerda que hay más de estas herramientas y es necesario que las consultes para escoger la que mejor se adapte a tus necesidades. Además, el trabajo de un buen data scientist consiste en identificar las soluciones adecuadas para el análisis de datos.

Nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning te permitirá consolidar tus conocimientos y poner a prueba tus destrezas en este ámbito del sector IT. En el transcurso de este bootcamp, aprenderás cómo el Data Mining es la técnica para extraer el conocimiento a través de grandes volúmenes de datos y a utilizar sus métodos de inteligencia artificial, aprendizaje automático, estadística y sistemas de bases de datos.

La combinación del aprendizaje teórico y práctico te permitirá afianzar los conocimientos de forma más efectiva para convertirte en un experto. ¡No lo dudes más, inscríbete y empieza ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Sabías que hay más de 5.000 vacantes para desarrolladores de Big Data sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!