Ir al contenido principal

API de Spark

Prueba Databricks gratis

Si trabajas con Spark, te encontrarás con las tres API: DataFrames, Datasets y RDDs

¿Qué son los Resilient Distributed Datasets?

Un RDD, o conjunto de datos distribuido resiliente, es una colección de registros con computación distribuida que son tolerantes a fallas e inmutables por naturaleza. Se pueden operar en paralelo con API de bajo nivel, mientras que su característica de evaluación diferida hace que la operación de Spark funcione a una velocidad mejorada. Los RDD admiten dos tipos de operaciones:

  • Transformaciones: operaciones perezosas que devuelven otro RDD; este RDD no se calcula a menos que se realice una acción sobre él. Algunos ejemplos de transformaciones son map(), flatmap(), filter()
  • Acciones: operaciones que activan el cómputo y devuelven valores. Algunos ejemplos de acciones son count, top(), savetofile()

Desventajas de los RDD

Si eliges trabajar con un RDD, tendrás que optimizar todos y cada uno de los RDD. Además, a diferencia de los Datasets y DataFrames, los RDD no infieren el esquema de los datos ingeridos, por lo que tendrás que especificarlo.

¿Qué son los DataFrames?

DataFrames es una colección distribuida de filas en columnas con nombre. En términos simples, se parece a una hoja de Excel con encabezados de columna, o puedes pensar en él como el equivalente a una tabla en una base de datos relacional o un DataFrame en R o Python. Tiene tres características principales en común con los RDD:

  • Inmutables por naturaleza: Podrás crear un DataFrame, pero no podrás cambiarlo. Un DataFrame, al igual que un RDD, puede transformarse
  • Evaluaciones perezosas: una tarea no se ejecuta hasta que se realiza una acción.
  • Distribuido:  Los DataFrames, al igual que los RDD, son de naturaleza distribuida.

Formas de crear un DataFrame

En Spark, los DataFrames se pueden crear de varias formas:

  • Usando diferentes formatos de datos. Como cargar los datos desde JSON, CSV, RDBMS, XML o Parquet
  • Carga de los datos desde un RDD ya existente.
  • Especificación del esquema mediante programación

Desventajas de los DataFrames

La principal desventaja de la API de DataFrame es que no ofrece seguridad en tiempo de compilación, por lo que el usuario tiene limitaciones si no se conoce la estructura de los datos.

¿Qué son los Datasets?

Un Dataset es una colección de objetos inmutable y fuertemente tipada que se asignan a un esquema relacional. Un Dataset puede crearse utilizando objetos de la JVM y manipularse mediante transformaciones funcionales complejas. Los Datasets pueden crearse de dos maneras:

  • Dinámicamente
  • Leyendo desde un archivo JSON usando SparkSession.

Desventajas de los Datasets

La principal desventaja de los Datasets es que requieren la conversión de tipos a strings.
 

Recursos adicionales

Volver al glosario