Frage

Als ich mir das erste Papier über RDDS/Apache Spark betrachtete, fand ich eine Erklärung, dass "RDDs sich anmutig verschlechtern, wenn nicht genügend Speicher vorhanden ist, um sie zu speichern, solange sie nur in Scan-basierten Operationen verwendet werden".

Was sind scanbasierte Operationen im Kontext von RDDs und welcher der der Transformationen im Funken sind scanbasierte Vorgänge

War es hilfreich?

Lösung

Scan -basierte Operationen sind im Grunde alle Vorgänge, die die Bewertung des Prädikats auf einer RDD erfordern.

Mit anderen Worten, jedes Mal, wenn Sie eine RDD oder einen Datenrahmen erstellen, in dem Sie a berechnen müssen Prädikat Wie bei der Durchführung eines Filters, der Karte in einer Fallklasse, pro Beispiel oder sogar Erklärungsmethode wird als Scan -basierter Vorgang betrachtet.

Um klarer zu sein, lesen wir die Definition eines Prädikats.

Ein Prädikat oder ein funktionelles Prädikat ist ein logisches Symbol, das auf einen Objektterm angewendet werden kann, um einen anderen Objektterm zu erstellen.

Funktionelle Prädikate werden manchmal auch genannt Zuordnungen, Aber dieser Begriff kann auch andere Bedeutungen haben.

Beispiel :

// scan based transformation
rdd.filter(!_.contains("#")) // here the predicate is !_.contains("#")

// another scan based transformation
rdd.filter(myfunc) // myfunc is a boolean function

// a third also trivial scan based transformation followed by a non scan based one.
rdd.map(myfunc2) 
   .reduce(myfunc3)

Wenn Sie verstehen möchten, wie Spark -Interna funktionieren, schlage ich vor, dass Sie das beobachten Präsentation Hergestellt von Databricks über die Themen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top