ComeçarComece gratuitamente

Usando a transmissão nas uniões do Spark

Lembre-se de que as uniões de tabelas no Spark são divididas entre os trabalhadores do cluster. Se os dados não forem locais, serão necessárias várias operações de embaralhamento, o que pode ter um impacto negativo no desempenho. Em vez disso, usaremos as operações broadcast do Spark para dar a cada nó uma cópia dos dados especificados.

Algumas dicas:

  • Transmita o DataFrame menor. Quanto maior o DataFrame, mais tempo você precisará para transferir para os nós de trabalho.
  • Em DataFrames pequenos, pode ser melhor ignorar a transmissão e deixar que o Spark descubra qualquer otimização por conta própria.
  • Se você observar o plano de execução da consulta, um broadcastHashJoin indica que você configurou a transmissão com êxito.

Os DataFrames flights_df e airports_df estão disponíveis para você.

Este exercício faz parte do curso

Limpeza de dados com o PySpark

Ver Curso

Instruções de exercício

  • Importe o método broadcast() de pyspark.sql.functions.
  • Crie um novo DataFrame broadcast_df juntando flights_df com airports_df, usando a transmissão.
  • Mostre o plano de consulta e considere as diferenças em relação ao original.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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 e executar código