Mam problem ze znalezieniem w dokumentacji dokumentacji Spark, która powoduje przetasowanie i operację, która tego nie robi. Na tej liście, które z nich powodują przetasowanie, a które nie?Jakie są transformacje Spark powodujące Shuffle?
Mapa i filtr nie. Jednak nie jestem pewien z innymi.
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)
To tylko ogólnie dobry punkt o programowaniu faktycznie - starają się odpowiedzieć na pytania, czytając kod i przy użyciu kodu nad dokumentacją czytania. Dokumentacja może często zawierać powielanie informacji, a wraz z duplikacją pojawiają się błędy i utrata informacji. Czytając kod, można dokładnie wiedzieć * co się dzieje :) – samthebest
Zgodnie z dokumentacją 'toDebugString' zwraca" Opis tego RDD i jego rekurencyjnych zależności dla debugowania. " Więc będzie zawierać możliwe przetasowania z wcześniejszych transformacji, jeśli istnieją, nawet jeśli ostatnia transformacja nie powoduje shuffle, prawda? –