ComenzarEmpieza gratis

Utilizar la difusión en las uniones Spark

Recuerda que las uniones de tablas en Spark se reparten entre los cluster workers. Si los datos no son locales, se requieren varias operaciones de barajado que pueden tener un impacto negativo en el rendimiento. En su lugar, vamos a utilizar las operaciones broadcast de Spark para dar a cada no do una copia de los datos especificados.

Un par de consejos:

  • Difunde el DataFrame más pequeño. Cuanto mayor sea el DataFrame, más tiempo se necesitará para transferirlo a los nodos trabajadores.
  • En DataFrames pequeños, puede ser mejor omitir la difusión y dejar que Spark resuelva cualquier optimización por sí mismo.
  • Si miras el plan de ejecución de la consulta, un broadcastHashJoin indica que has configurado correctamente la difusión.

Los DataFrames flights_df y airports_df están a tu disposición.

Este ejercicio forma parte del curso

Limpiar datos con PySpark

Ver curso

Instrucciones del ejercicio

  • Importa el método broadcast() de pyspark.sql.functions.
  • Crea un nuevo DataFrame broadcast_df uniendo flights_df con airports_df, utilizando la emisión.
  • Muestra el plan de consulta y considera las diferencias con el original.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# Import the broadcast method from pyspark.sql.functions
from ____ import ____

# Join the flights_df and airports_df DataFrames using broadcasting
broadcast_df = flights_df.____(____(airports_df), \
    flights_df["Destination Airport"] == airports_df["IATA"] )

# Show the query plan and compare against the original
broadcast_df.____()
Editar y ejecutar código