Entradas

Mostrando las entradas etiquetadas como broadcast

Agregaciones básicas en Spark

Introducción Una de las tareas más común trabajando con Spark son las agregaciones. Por ejemplo, en SQL haríamos lo siguiente: Select avg(salario) as SalarioMedia from empleados group by genero Esto nos calcula la media de salario para cada genero. ¿Cómo se hace esto en Spark? Pues curiosamente hay muchas formas, podemos recurrir a spark-sql y ejecutar exactamente esa query, pero personalmente no me gusta NADA hacer uso de spark-sql, por lo tanto, eliminamos una de las maneras de realizarlo 😄. La forma más correcta (desde mi punto de vista, claro) de escribir eso sería: empleados.groupBy($"genero").agg(functions.avg($"salario") as "SalarioMedia") DataFrame.groupBy "DataFrame. groupBy" (o Dataset, no importa, recordemos que DataFrame = Dataset[Row]) es una funcion que tienen todos los dataframe para poder realizar agregaciones, es importante entender que esta función NO devuelve un dataframe , sino un RelationalGroupedDataset , que sería un data...

Optimizar joins: Tabla de hechos y tabla de dimensión cruzadas

Imagen
Vamos a simular un caso en el que se nos solicita realizar un desarrollo y debemos hacerlo lo más eficiente posible. Requerimientos solicitados Se nos ha solicitado, dada una tabla de empleados y una tabla de categorías de empleados, recuperar el id de empleado y el codigo especial que le corresponde a cada uno. La tabla grande tiene el siguiente esquema: id (bigint): Id del empleado id_categoria (int): Id de la categoría en la que se encuentra el empleado salario (int): Sueldo del empleado dimension1 (string): Otra dimensión no necesaria dimension2 (string): Otra dimensión no necesaria La tabla de dimensión tiene este esquema: id (bigint): id de la dimensión datos_extra1 (int): Información no necesaria datos_extra2 (int): Información no necesaria datos_extra3 (int) : Información no necesaria codigo_especial (string): El código que se nos ha requerido recuperar Generación de la tablas Introducción Para la generación de los...

Entradas populares de este blog

Agregaciones básicas en Spark

Optimizar joins: Tabla de hechos y tabla de dimensión cruzadas

Generación de datos aleatorios con Dataframe