ПочатиПочніть безкоштовно

Використання broadcast у з'єднаннях Spark

Пам'ятайте, що з'єднання таблиць у Spark розподіляються між виконавцями кластера. Якщо дані не локальні, потрібні різні операції перестановки (shuffle), які можуть погіршити продуктивність. Натомість ми використаємо операції Spark broadcast, щоб надати кожному вузлу копію вказаних даних.

Кілька порад:

  • Передавайте в broadcast менший датафрейм. Чим більший датафрейм, тим більше часу потрібно, щоб передати його на вузли-виконавці.
  • Для невеликих датафреймів інколи краще пропустити broadcast і дозволити Spark самостійно виконати оптимізацію.
  • Якщо ви переглянете план виконання запиту, позначка broadcastHashJoin означає, що ви успішно налаштували broadcast.

Датафрейми flights_df і airports_df доступні вам.

Ця вправа є частиною курсу

Очищення даних у PySpark

Переглянути курс

Інструкції до вправи

  • Імпортуйте метод broadcast() з pyspark.sql.functions.
  • Створіть новий датафрейм broadcast_df, виконавши з'єднання flights_df з airports_df з використанням broadcast.
  • Показуйте план запиту та порівняйте відмінності з початковим.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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.____()
Редагувати та запускати код