LoslegenKostenlos loslegen

Broadcasting bei Spark-Joins verwenden

Denk daran: Table-Joins in Spark werden über die Cluster-Worker verteilt. Wenn die Daten nicht lokal sind, sind verschiedene Shuffle-Operationen nötig, die die Performance negativ beeinflussen können. Stattdessen nutzen wir Sparks broadcast-Operationen, um jedem Knoten eine Kopie der angegebenen Daten zu geben.

Ein paar Tipps:

  • Broadcast das kleinere DataFrame. Je größer das DataFrame, desto länger dauert die Übertragung zu den Worker-Knoten.
  • Bei kleinen DataFrames ist es oft besser, auf Broadcasting zu verzichten und Spark die Optimierung selbst überlassen.
  • Wenn du dir den Ausführungsplan ansiehst, zeigt ein broadcastHashJoin, dass das Broadcasting erfolgreich konfiguriert wurde.

Die DataFrames flights_df und airports_df stehen dir zur Verfügung.

Diese Übung ist Teil des Kurses

Datenbereinigung mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Methode broadcast() aus pyspark.sql.functions.
  • Erzeuge ein neues DataFrame broadcast_df, indem du flights_df mit airports_df per Broadcasting joinst.
  • Zeige den Abfrageplan an und überlege dir Unterschiede zum Original.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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.____()
Code bearbeiten und ausführen