Insbesondere dann, wenn ich sage,Gibt es eine „RDD Explain“ in Funken
rdd3 = rdd1.join(rdd2)
dann, wenn ich rdd3.collect
nennen, je nach Partitioner
verwendet, entweder Daten zwischen den Knoten Partitionen bewegt wird, oder die Verbindung erfolgt lokal auf jeder Partition (oder, soweit ich weiß, etwas ganz anderes). Dies hängt davon ab, was das RDD-Papier "enge" und "weite" Abhängigkeiten nennt, aber wer weiß, wie gut der Optimierer in der Praxis ist.
Wie auch immer, ich kann aus der Trace-Ausgabe irgendwie herausfinden, was tatsächlich passiert ist, aber es wäre nett, rdd3.explain
zu nennen.
Gibt es so etwas?
eine Sache der Schönheit das ist –
dies nützlich, aber Es ist nicht das Detail, auf das ich gehofft hatte. Insbesondere bei einem Join, bei dem ein Shuffle erforderlich ist oder nicht, geben Sie das gleiche für die Ausgabe von DebugString ab ... obwohl für Dinge wie distinct kann ich den Shuffle-Schritt deutlich sehen. –
Ich denke, ich meine "realisierte, um lokal zu laufen", wie in, keine Daten sollten zwischen Knoten gesendet werden, wenn die Partitionierer zustimmen. –