Introducci贸n a los RDDs y DataFrames

3/25
Recursos

Aportes 11

Preguntas 3

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

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?

鈥淯no 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

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 鈥減rimitivo鈥 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.

GRAN PROFESOR, SUMAMENTE CLARO

![](

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

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

Me ha gustado mucho