Ich habe Schwierigkeiten, in den Spark-Dokumentationsoperationen zu finden, die eine Zufallswiedergabe verursachen und die Operation nicht. Welche verursacht in dieser Liste einen Shuffle und welche nicht?Was sind die Spark-Transformationen, die einen Zufall verursachen?
Karte und Filter nicht. Bei den anderen bin ich mir jedoch nicht sicher.
map(func)
filter(func)
flatMap(func)
mapPartitions(func)
mapPartitionsWithIndex(func)
sample(withReplacement, fraction, seed)
union(otherDataset)
intersection(otherDataset)
distinct([numTasks]))
groupByKey([numTasks])
reduceByKey(func, [numTasks])
aggregateByKey(zeroValue)(seqOp, combOp, [numTasks])
sortByKey([ascending], [numTasks])
join(otherDataset, [numTasks])
cogroup(otherDataset, [numTasks])
cartesian(otherDataset)
pipe(command, [envVars])
coalesce(numPartitions)
Es ist nur ein allgemein guter Punkt, um die Programmierung tatsächlich - versuchen, Fragen zu beantworten, indem Code zu lesen und über das Lesen der Dokumentation unter Verwendung von Code. Die Dokumentation kann häufig doppelte Informationen enthalten, und bei der Duplizierung kommt es zu Fehlern und zum Verlust von Informationen. Beim Lesen von Code kann man * genau * wissen, was vor sich geht :) – samthebest
Laut der Dokumentation gibt 'toDebugString' eine Beschreibung dieser RDD und ihrer rekursiven Abhängigkeiten für das Debugging zurück. Es wird also mögliche Shuffle aus früheren Transformationen enthalten, wenn sie existieren, auch wenn bei der letzten Transformation kein Shuffle auftritt, oder? –