Hält Spark alle Elemente einer RDD [K, V] für einen bestimmten Schlüssel in einer einzelnen Partition nach "groupByKey", auch wenn die Daten für einen Schlüssel sehr groß sind?

Consider Ich habe eine PairedRDD von zB 10 Partitionen. Die Schlüssel sind jedoch nicht gleichmäßig verteilt, d. H. Alle 9 Partitionen mit Daten gehören zu einem einzigen Schlüssel, z. B. a und die restlichen Tasten sagenb,c gibt es nur in der letzten Partition. Dies wird durch die folgende Abbildung dargestellt:

Nun wenn ich ein @ macgroupByKey auf diesemrdd, nach meinem Verständnis werden alle Daten für denselben Schlüssel irgendwann auf verschiedene Partitionen verschoben, oder es werden keine Daten für denselben Schlüssel in mehreren Partitionen gespeichert. Bitte korrigieren Sie mich, wenn ich falsch liege.

Wenn dies der Fall ist, besteht die Möglichkeit, dassdie Partition für den Schlüssela kann eine Größe haben, die möglicherweise nicht in den Arbeitsspeicher eines Arbeitnehmers passt. In diesem Fall wird was Funken tun? Ich gehe davon aus, dass die Daten auf die Festplatte des Arbeitnehmers gelangen. Ist das korrekt? Oder wie Funken mit solchen Situationen umgehen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage