Particionado y Replicación de Datos en Spark RDDs
Clase 22 de 25 • Curso de Fundamentos de Spark para Big Data
Contenido del curso
Configuración
Operaciones RDDs
- 7

Transformaciones y Acciones en RDD de Spark
02:32 min - 8

Transformaciones y acciones
11:27 min - 9

Interacción con RDDs en Spark: Operaciones Básicas y Avanzadas
14:35 min - 10

Operaciones avanzadas con RDDs en Spark: Uniones y Joins
14:13 min - 11

Unión de Datos en RDD para Deportistas Olímpicos
03:09 min - 12

Operaciones Numéricas con RDDs en Juegos Olímpicos
08:59 min
Data Frames y SQL
- 13

Creación y Gestión de Data Frames en PySpark
14:09 min - 14

Creación de DataFrame desde RDD en PySpark
09:15 min - 15

Manipulación de Data Frames en PySpark
12:32 min - 16

Joins y Selección de Datos en DataFrames con PySpark
09:34 min - 17

Filtrado y Join de Datos Olímpicos en Pandas
05:02 min - 18

Funciones de Agregación en Spark para DataFrames
10:00 min - 19

Uso de SQLContext para Registro y Consultas con DataFrames en Spark
07:29 min - 20

Creación y Uso de Funciones UDF en Spark
01:06 min - 21

Creación y uso de UDFs en PySpark para manejo de datos faltantes
13:09 min
Persistencia y particionado
Conclusiones
Como se ha descrito en clases pasadas, los RDD son la capa de abstracción primaria para poder interactuar con los datos que viven en nuestro ambiente de Spark. Aunque estos puedan ser enmascarados con un esquema dotándolos de las facultades propias de los DataFrames, la información de fondo sigue operando como RDD.
Por lo tanto, la información, como indica el nombre de los RDD, se maneja de forma distribuida a lo largo del clúster, facilitando las operaciones que se van a ejecutar, ya que segmentos de información pueden encontrarse en diferentes ejecutores reduciendo el tiempo necesario para acceder a la información y poder así realizar los cálculos necesarios.
Cuando un RDD o Dataframe es creado, según las especificaciones que se indiquen a la aplicación de Spark, creará un esquema de particionado básico, el cual distribuirá los datos a lo largo del clúster. Siendo así que al momento de ejecutar una acción, esta se ejecutará entre los diversos fragmentos de información que existan para poder así realizar de la forma más rápida las operaciones. Es por eso que un correcto esquema de particionado es clave para poder tener aplicaciones rápidas y precisas que además consuman pocos recursos de red.
Otra de las tareas fundamentales es la replicación de componentes y sus fragmentos, ya que al aumentar la disponibilidad de estos podremos asegurar una tolerancia a fallos, mientras más se replique un valor es más probable que no se pierda si existe un fallo de red o energía, además de permitir una disponibilidad casi inmediata del archivo buscado.
La partición y replicación son elementos que deben ser analizados según el tipo de negocio o requerimientos que se tengan en el desarrollo que se encuentre en progreso, por lo cual la cantidad de datos replicados o granularidad de datos existentes en los fragmentos dependerá en función de las reglas de negocio.
En las siguientes clases profundizaremos en estos conceptos y crearemos un particionado simple de datos con ayuda de las funciones getNumpartitions y glom. ¡Te veo en la siguiente clase!