Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Introducción a los RDDs y DataFrames

3/25
Recursos

Aportes 13

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Características de los RDD:

  • Principal abstracción de datos: Es la unidad básica, existen desde su inicio hasta su versión 3.0.
  • Distribución: Los RDD se dritribuyen y particionan a lo largo del clúster.
  • Creación simple: Al no poseer estructura formalmente, adoptan las más intuitiva.
  • Inmutabilidad: Posterior a su creación no se pueden modificar
  • Ejecución perezosa: A menos que se realice una acción.

Características de los DataFrame

  • Formato: A diferencia de un RDD poseen columnas, lo cual les otorga tipos de datos.
  • Optimización: Poseen una mejor implementación, lo cual los hace preferibles.
  • Facilidad de creación: Se pueden crear desde una base de datos externa, archivo o RDD existente.

¿Cuándo usar un RDD?

  • Cuando te interesa controlar el flujo de Spark.
  • Si eres usuario Python, convertir a RDD un conjunto permite mejor control de datos.
  • Estás conectándote a versiones antiguas de spark.

¿Cuándo usar DataFrames?

  • Si poseemos semánticas de datos complicadas.
  • Vamos a realizar tareas de alto nivel como filtros, mapeos, agregaciones, promedios o sumas.
  • Si vamos a usar sentencias SQL.

Menciona que los RDD son inmutables, como los diccionarios. Pero, creo que lo que quizo decir fue referirse a que son inmutables, como las duplas. Es decir, una vez creadas no se pueden modificar sus valores.
Todo lo anterior refiriéndome en el caso que esté hablando de Python, desconozco como sea en Scala o R.

Yo tengo una mejor pregunta ¿que es RDD?

“Uno de los pilares base de Apache Spark, los Resilient Distributed Datasets (RDD), se tratan de datasets tolerantes a fallos, capaces de operar en paralelo (esta es la razón por la que son uno de los pilares base de Spark, ya que Spark, se basa principalmente en procesos paralelizados).”

Las transformaciones no se ejecutan hasta que se llama a una acción. Por ejemplo: ordenar el RDD (RDD.orderBy()) no se ejecutara hasta que se mande una acción en este caso RDD.orderBy().show().

Transformaciones Acciones
orderBy() show()
groupBy() take()
filter() count()
select() collect()

join() save()

Si alguien tubo la duda como yo, de la diferencia entre Apache Spark y Amazon Redshift, acá dejo una buena respuesta: https://www.trustradius.com/compare-products/apache-spark-vs-redshift

GRAN PROFESOR, SUMAMENTE CLARO

Son las principales estructuras de Spark y apartir de ellas se pueden construir todos los componentes que necesitemos. Los RDD son el componente mínimo con el cual podemos comunicarnos con Spark.

<h3>Características de los RDD</h3>
  • Principal abstracción de datos: Son la unidad básica de Spark.
  • Distribución: Se distribuyen y particionan a lo largo de nuestro clúster de máquinas.
  • Creación simple: No poseen una estructura definida y adoptan la más intuitiva.
  • Inmutabilidad: Una vez creadas no se pueden modificar.
  • Ejecución perezosa: A menos que se realice una acción.
<h3>DataFrame</h3>

Son una capa superior a los RDDs.

  • Formato: Poseen columnas, lo cual les otorga tipos de datos.
  • Optimización: Poseen una mejor implementación, lo cual los hace preferibles por su velocidad en operaciones.
  • Facilidad de creación: Se pueden crear desde una base de datos externa, archivo o RDD existente.
<h3>¿Cuándo usar RDD?</h3>
  • Es un dato “primitivo” de Spark y nos permite controlar su flujo.
  • Convertir RDDs a un conjunto de datos de Python nos permite mejor control, como si fueran datos nativos de Python.
  • Compatibilidad con versiones antiguas de Spark.
<h3>¿Cuándo usar DataFrames?</h3>
  • Si tenemos una instrucción muy complicada.
  • Vamos a realizar tareas de alto nivel como filtros, mapeos, agregaciones, promedios o sumas.
  • Si vamos a usar sentencias SQL-like.

![](

RDD
Distribución, Inmutabilidad (luego de creados no cambian su valor), Ejecución perezosa (si existe algún error no lo validara hasta que ejecute una acción)
transformaciones: orderBy, groupBy, filter, select, join
acciones show, take, count, collect, save
DataFrame
Poseen estructura (nombre, tipo dato), mas rápidos y flexibles de crear.

Cuando usar RDD?
puedo contralar el flujo, Versiones antiguas de Spark 😄

Cuando usar DataFrames?
Operaciones complicadas, se puede trabajar como tablas y ejecutar sentencias como una base de datos tradicional

Me ha gustado mucho

RDD (Resilient Distributed Datasets) traduce (Conjuntos de datos distribuidos resistentes) …

<https://medium.com/@imertpro/introduction-to-apache-spark-rdds-and-dataframes-with-python-d72f1eb4a0f8> Les comparto mi articulo acerca de este tema, espero les sirva