sagen, dass ich drei RDD Transformationsfunktion auf RDD1 genannt haben:Wie weit wird Spark RDD Cache gehen?
def rdd2 = rdd1.f1
def rdd3 = rdd2.f2
def rdd4 = rdd3.f3
Jetzt möchte ich rdd4
zwischenzuspeichern, so nenne ich rdd4.cache()
.
Meine Frage:
Wird nur das Ergebnis der Aktion auf rdd4
zwischengespeichert werden oder wird jeder RDD oben rdd4
zwischengespeichert werden? Angenommen, ich möchte sowohl rdd3
als auch rdd4
zwischenspeichern. Muss ich sie separat zwischenspeichern?
Schätzen Sie Ihre Antwort. Wann immer es eine Gabelung gibt, müssen Sie diese rdd zwischenspeichern, um die wiederholte Berechnung zu reduzieren. Der einzige Schmerz ist, auf der zwischengespeicherten rdd (da ich multiple-fork auf meiner rdd-Transformation habe) aufzulösen. Ich werde die Zeitung noch einmal lesen. Danke – EdwinGuo
@EdwinGuo zitieren Sie mich nicht auf diesem, aber ich denke, die meisten Leute finden, dass die zusätzliche Zeit zu unpersistenzen ist in der Regel mehr Mühe, als es wert ist, ist es besser, die JVM damit umgehen zu lassen, wie widerstandslos ist eine sehr teure Operation – aaronman
ok, Soll ich eine andere Frage dazu aufschlagen? versuche auf Unpersisten zu suchen, kein Glück. "Markieren Sie die RDD als nicht persistent, und entfernen Sie alle Blöcke aus dem Speicher und der Festplatte." von der gitHub, nicht viel zu erwähnen – EdwinGuo