Wenn ich 10 RDD in meiner pySpark Schale aus HDFS schaffen, bedeutet es, alle diese 10 RDD Daten auf Spark-Speicher befinden werden?
Ja, Alle 10 RDDs Daten in Funkenarbeitscomputer verteilt wird RAM. aber nicht notwendig für alle Maschinen muss eine Partition von jeder RDD haben. Natürlich wird RDD Daten nur dann im Speicher haben, wenn eine Aktion ausgeführt wird, da sie nur langsam ausgewertet wird.
Wenn ich RDD nicht lösche, wird es für immer im Speicher bleiben?
Funken automatisch unpersist der RDD oder Datenrahmen, wenn sie nicht mehr verwendet werden. Um zu wissen, ob eine RDD oder ein Dataframe zwischengespeichert ist, können Sie in die Spark-UI -> Storage-Tabelle gelangen und die Details zum Speicher einsehen. Sie können df.unpersist()
oder sqlContext.uncacheTable("sparktable")
verwenden, um die df
oder Tabellen aus dem Speicher zu entfernen. link to read more
Wenn meine Dataset Größe Größe verfügbar RAM überschreitet, wo Daten zu gespeichert?
Wenn der RDD in den Speicher passen nicht, werden einige Partitionen nicht zwischengespeichert werden und wird im laufenden Betrieb jedes Mal neu berechnet werden, wenn sie gebraucht werden. link to read more
Wenn wir sagen RDD ist bereits im RAM-Speicher, was bedeutet es im Speicher ist, was ist die Notwendigkeit zu bestehen()? --as pro Kommentar
Ihre Frage zu beantworten, wenn eine Aktion auf RDD ausgelöst und wenn diese Aktion nicht Speicher finden kann, kann es uncached/unpersisted RDDs entfernen.
Im Allgemeinen wir RDD bestehen, die viele Rechen benötigen oder/und schlurfende (standardmäßig Funken RDDs persist gemischt teure Netzwerk zu vermeiden I/O), so dass, wenn eine Aktion ausgeführt auf RDD beharrte, einfach wird es diese Aktion nur durchführen, anstatt es vom Anfang wieder zu berechnen, gemäß dem Liniengraphen check RDD persistence levels here.
Im Speicher bedeutet ja seinen RAM. RDDs sind faul. Es gibt zwei Operationen auf RDD, die Transformationen und Aktionen genannt werden, es sei denn, eine Aktion (z. B. Zählung) wird aufgerufen, sie werden nicht agieren und rechnen. Beim Starten des Jobs werden wir Speicher (der Executor-Speicher im RAM ist) durch Funken senden oder auf andere Weise zuweisen. Würde [this] empfehlen (https://www.tutorialspoint.com/apache_spark/apache_spark_rdd.htm) –