Funciones de Agregación en Spark para DataFrames
Clase 18 de 25 • Curso de Fundamentos de Spark para Big Data
Resumen
¿Cómo utilizar funciones de agregación en Spark?
Trabajar con grandes volúmenes de datos requiere herramientas eficientes y precisas como Apache Spark. En esta clase, exploramos las funciones de agregación en Spark, esenciales para el análisis de datos de gran volumen. Las funciones de agregación permiten resumir datos proporcionando estadísticas valiosas, como contar, promediar, y sumar grupos de datos. A continuación, te ofrecemos una guía práctica para crear agrupaciones eficaces.
¿Cómo se estructura un data frame para agregaciones?
Antes de aplicar funciones de agregación, es crucial comprender la estructura del data frame con el que trabajarás. A menudo, manejarás data frames resultantes de múltiples joins, combinando varias tablas para obtener todas las columnas necesarias.
- Schema inicial: Selecciona las columnas esenciales para la tarea de agregación.
- Joins: Implementa joins apropiados, fusionando tablas como
resultado
,juego
,países
, entre otras, para obtener las columnas necesarias como medallista, equipo, y disciplina. - Columna clave: Identifica columnas pivote para realizar el GroupBy, tal como el año, el equipo (sigla) y subdisciplina, especialmente si el objetivo es detallar el rendimiento de países en diferentes olimpiadas.
¿Cómo realizar una agrupación básica en Spark?
A partir de la data frame de "medallista por año", inicia con un filtro para depurar datos no esenciales. Luego, ordena los resultados para una salida más clara. Aquí te mostramos los pasos para realizar un groupBy
y un conteo (count
), con un ejemplo en código:
medallista_filtrado = medallista_ano.filter(medallista_ano.medalla.isNotNull())
grouped_data = medallista_filtrado.groupBy("sigla", "anio", "subdisciplina").count()
grouped_data.show()
¿Cómo emplear funciones de agregación avanzadas?
Para realizar agregaciones complejas, la función agg
es la forma más recomendada, permitiéndote aplicar múltiples funciones de agregación simultáneamente. Esto es especialmente útil si tu análisis requiere una serie de operaciones como suma y promedio. Aquí te mostramos cómo hacerlo:
from pyspark.sql.functions import sum as _sum, avg as _avg
resultados_agrupados = (medallista_ano2
.groupBy("sigla", "anio")
.agg(_sum("count").alias("total_de_medallas"),
_avg("count").alias("medallas_promedio"))
.show())
Esta forma de agrupar te permite obtener un resumen conciso de los logros de un país a lo largo del tiempo en diferentes juegos olímpicos.
Experiencias y mejores prácticas al trabajar con Spark
- Paciencia con los joins: Al trabajar con datos voluminosos y varios joins, espera tiempos de ejecución más prolongados. Ajusta otros parámetros como el tamaño de la memoria si es necesario.
- Claridad en los nombres: Utiliza aliases para resultados de agregaciones para mantener claridad y orden en los resultados.
- Documentación: Recuerda consultar la documentación oficial de Spark, ya que constantemente se actualizan mejores prácticas y nuevas funcionalidades.
Al comprender y aplicar estas técnicas de agregación, podrás realizar análisis profundo con gran resolución en tus data frames de Spark, consiguiendo insights valiosos para tomar decisiones informadas. ¡Sigue avanzando en tu aprendizaje y explora la vasta gama de funciones que Spark ofrece!