Saltar al contenido

¿Qué es RDD en Spark?

Ya no busques más por todo internet ya que llegaste al sitio perfecto, tenemos la respuesta que quieres recibir pero sin complicarte.

Solución:

Un RDD es, esencialmente, la representación de Spark de un conjunto de datos, repartidos en varias máquinas, con API que le permiten actuar en consecuencia. Un RDD podría provenir de cualquier fuente de datos, por ejemplo, archivos de texto, una base de datos a través de JDBC, etc.

La definición formal es:

Los RDD son estructuras de datos paralelos tolerantes a fallas que permiten a los usuarios conservar explícitamente los resultados intermedios en la memoria, controlar su partición para optimizar la ubicación de los datos y manipularlos mediante un amplio conjunto de operadores.

Si desea conocer todos los detalles sobre qué es un RDD, lea uno de los artículos académicos principales de Spark, Conjuntos de datos distribuidos resistentes: una abstracción tolerante a fallas para la computación en clúster en memoria

RDD es una referencia lógica de un dataset que está particionado en muchas máquinas de servidor en el clúster. RDDLos s son inmutables y se recuperan automáticamente en caso de falla.

dataset podrían ser los datos cargados externamente por el usuario. Podría ser un archivo json, un archivo csv o un archivo de texto sin una estructura de datos específica.

ingrese la descripción de la imagen aquí

ACTUALIZAR: Aquí está el documento que describe los componentes internos de RDD:

Espero que esto ayude.

Formalmente, un RDD es una colección de registros particionados de solo lectura. Los RDD solo se pueden crear a través de operaciones deterministas en (1) datos en almacenamiento estable o (2) otros RDD.

Los RDD tienen las siguientes propiedades:

  1. Inmutabilidad y partición:
    RDD compuestos por una colección de registros que están particionados. La partición es una unidad básica de paralelismo en un RDD, y cada partición es una división lógica de datos que es inmutable y se crea a través de algunas transformaciones en las particiones existentes. La inmutabilidad ayuda a lograr la coherencia en los cálculos.

    Los usuarios pueden definir sus propios criterios para la partición en función de keys en el que quieren unir múltiples conjuntos de datos si es necesario.

  2. Operaciones de grano grueso:
    Las operaciones de granularidad gruesa son operaciones que se aplican a todos los elementos en conjuntos de datos. Por ejemplo, una operación de mapa, filtro o agrupación que se realizará en todos los elementos de una partición de RDD.

  3. Tolerancia a fallos:
    Dado que los RDD se crean sobre un conjunto de transformaciones, registra esas transformaciones, en lugar de datos reales. El gráfico de estas transformaciones para producir un RDD se denomina Lineage Graph.

Por ejemplo –

firstRDD=sc.textFile("hdfs://...")

secondRDD=firstRDD.filter(someFunction);

thirdRDD = secondRDD.map(someFunction);

result = thirdRDD.count()

En caso de que perdamos alguna partición de RDD, podemos reproducir la transformación en esa partición en el linaje para lograr el mismo cálculo, en lugar de realizar la replicación de datos en varios nodos. Esta característica es el mayor beneficio de RDD, porque ahorra muchos esfuerzos en la gestión y replicación de datos y, por lo tanto, logra cálculos más rápidos.

  1. Evaluaciones perezosas:
    Spark calcula los RDD de forma perezosa la primera vez que se usan en una acción, para que pueda canalizar las transformaciones. Entonces, en el ejemplo anterior, RDD se evaluará solo cuando se invoque la acción count ().

  2. Persistencia:
    Los usuarios pueden indicar qué RDD reutilizarán y elegir una estrategia de almacenamiento para ellos (p. ej., almacenamiento en memoria o en disco, etc.)

Estas propiedades de los RDD los hacen útiles para cálculos rápidos.

Sección de Reseñas y Valoraciones

Acuérdate de que te permitimos valorar esta sección si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *