Erste SchritteKostenlos loslegen

Verwendung von Broadcasting bei Spark-Joins

Denke daran, dass Tabellen-Joins in Spark zwischen den Cluster-Arbeitern aufgeteilt werden. Wenn die Daten nicht lokal sind, sind verschiedene Shuffle-Operationen erforderlich, die sich negativ auf die Leistung auswirken können. Stattdessen werden wir die broadcast Operationen von Spark nutzen, um jedem Knoten eine Kopie der angegebenen Daten zu geben.

Ein paar Tipps:

  • Sende den kleineren DataFrame. Je größer der DataFrame ist, desto mehr Zeit wird für die Übertragung an die Worker Nodes benötigt.
  • Bei kleinen DataFrames ist es vielleicht besser, das Broadcasting zu überspringen und Spark die Optimierung selbst vornehmen zu lassen.
  • Wenn du dir den Ausführungsplan der Abfrage ansiehst, zeigt ein broadcastHashJoin an, dass du das Broadcasting erfolgreich konfiguriert hast.

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

Diese Übung ist Teil des Kurses

Daten bereinigen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Methode broadcast() von pyspark.sql.functions.
  • Erstelle einen neuen DataFrame broadcast_df, indem du flights_df mit airports_df verbindest.
  • Zeige den Abfrageplan und berücksichtige die Unterschiede zum Original.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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.____()
Bearbeiten und Ausführen von Code