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:34 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:14 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
Viendo ahora - 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:08 min
Persistencia y particionado
Conclusiones
Filtrado y Join de Datos Olímpicos en Pandas
Resumen
Cruzar múltiples dataframes mediante joins y aplicar filtros es una de las operaciones más frecuentes cuando trabajas con PySpark. En esta práctica se resuelve un reto que combina datos de resultados olímpicos, deportistas y países para obtener únicamente las medallas de oro, plata y bronce junto con la información del equipo ganador.
¿Cómo filtrar valores no deseados antes de un join?
El primer paso consiste en limpiar el dataframe de resultados eliminando todas las filas cuya columna de medalla contenga valores nulos o no correspondan a oro, plata o bronce [0:12]. Esto se logra excluyendo los valores NA de la columna medalla, lo que reduce el volumen de datos antes de realizar cualquier cruce.
Esta técnica es una buena práctica porque:
- Reduce el costo computacional del join posterior.
- Garantiza que solo trabajas con registros relevantes.
- Evita arrastrar filas innecesarias a lo largo de toda la transformación.
¿Cómo encadenar múltiples joins en PySpark?
Una vez filtrado el dataframe de resultados, se realizan dos left joins consecutivos [0:30]:
Primer join: resultados con deportistas
Se cruza resultado_dataframe con deportista_olimpico_dataframe utilizando la columna deportista_id como llave de unión. Ambos dataframes comparten esta columna, por lo que la comparación es directa. Se indica explícitamente que el tipo de join es left, lo cual asegura que se conserven todos los registros del dataframe izquierdo.
Segundo join: deportistas con países
El resultado del primer cruce se une con paises_dataframe comparando la columna id de países contra equipo_id de deportista olímpico [0:52]. De nuevo se emplea un left join para mantener la integridad de los datos del lado izquierdo.
Selección final de columnas
Después de los cruces, se aplica un .select() para conservar únicamente las columnas que interesan: medalla, equipo y sigla [1:06]. Esta selección limpia el dataframe resultante y lo deja listo para análisis.
¿Cómo ordenar resultados con sort en PySpark?
Como paso adicional, se muestra el uso de .sort() sobre la columna sigla [1:12]. Dentro de este método puedes indicar si el ordenamiento será ascendente o descendente pasando el parámetro correspondiente. Esto funciona de forma análoga al ORDER BY que ya conoces de SQL.
Algunos puntos importantes a considerar al escribir joins encadenados:
- Los joins deben escribirse en una sola línea o con el formato adecuado para evitar errores de sintaxis [1:42].
- No deben existir espacios adicionales después de ciertas expresiones, ya que PySpark puede interpretarlos como errores [1:55].
- Verificar la salida después de cada transformación ayuda a detectar problemas rápidamente.
El resultado final muestra un dataframe limpio con las medallas, los equipos ganadores y sus siglas ordenadas. Si obtuviste una salida similar, el reto fue resuelto correctamente. Comparte tus dudas o tu propia solución en la sección de comentarios.