Was bedeutet "Stage Skipped" in der Apache Spark-Web-Benutzeroberfläche?

84

Von meiner Spark-Benutzeroberfläche. Was bedeutet es mit übersprungen?

Geben Sie hier die Bildbeschreibung ein

Aravind Yarram
quelle

Antworten:

120

In der Regel bedeutet dies, dass Daten aus dem Cache abgerufen wurden und eine bestimmte Phase nicht erneut ausgeführt werden musste. Dies stimmt mit Ihrer DAG überein, die zeigt, dass für die nächste Stufe ein Mischen erforderlich ist ( reduceByKey). Immer wenn es um das Mischen geht , speichert Spark generierte Daten automatisch zwischen :

Shuffle generiert auch eine große Anzahl von Zwischendateien auf der Festplatte. Ab Spark 1.3 bleiben diese Dateien erhalten, bis die entsprechenden RDDs nicht mehr verwendet werden und der Müll gesammelt wird. Dies geschieht, damit die Shuffle-Dateien nicht neu erstellt werden müssen, wenn die Linie neu berechnet wird.

null323
quelle
20
Gute Antwort. Wenn Sie wissen möchten , Art und Weise mehr über die Semantik von „überspringen“ und Stufen auf dem Web - UI „pending“ Besuche github.com/apache/spark/pull/3009 , die Pull - Anforderung , die zuerst diese Konzepte eingeführt. Diese PR ist auch eine interessante Lektüre, wenn Sie neugierig sind, wie übersprungene / ausstehende Phasen mit Fortschrittsbalken auf Jobebene interagieren.
Josh Rosen
1
Wenn ich richtig verfolge, bedeutet das Überspringen von Spark, dass sie nicht auftreten und alle zusammen aus dem Code entfernt werden können? oder Code ist sehr effizient mit dem Cache, also lassen Sie es? @ zero323
SparkleGoat
1
@SparkleGoat Nein. Dies bedeutet, dass diese Phasen bereits zuvor ausgewertet wurden und das Ergebnis ohne erneute Ausführung verfügbar ist.
10465355 sagt Reinstate Monica
Eine andere Frage: Können Caching- und Skipping-Phasen die Ausgabedaten unterscheiden?
SparkleGoat
@SparkleGoat, kein Caching (und aus diesem Grund Überspringen) ist eine interne Funkenoptimierung und ändert die Ausgabedaten in keiner Weise.
Ravi Sanwal