Ho difficoltà a trovare nelle operazioni di documentazione Spark che causano un shuffle e operazioni che non lo fanno. In questa lista, quali causano uno shuffle e quali no?Quali sono le trasformazioni Spark che causano uno Shuffle?
La mappa e il filtro no. Tuttavia, non sono sicuro con gli altri.
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)
E 'solo un generale buon punto sulla programmazione in realtà - cercare di rispondere alle domande attraverso la lettura del codice e utilizzando il codice sopra la documentazione lettura. La documentazione può spesso contenere la duplicazione di informazioni e con la duplicazione derivano errori e perdita di informazioni. Durante la lettura del codice, si può sapere * esattamente * cosa sta succedendo :) – samthebest
Secondo la documentazione, 'toDebugString' restituisce" Una descrizione di questo RDD e delle sue dipendenze ricorsive per il debug. " Quindi includerà possibili mescolanze da trasformazioni precedenti, se esistono, anche se la trasformazione più recente non incorre in shuffle, giusto? –