Also habe ich versucht, auf Spark-Operationen zu testen, die Shuffling basierend auf diesem Stack-Overflow-Post verursachen: LINK. Es macht jedoch keinen Sinn für mich, wenn die Operation cartesian
kein Mischen in Spark verursacht, da sie die Partitionen über das Netzwerk verschieben müssen, um sie lokal zusammenzufügen.Spark Cartesian verursacht keine Shuffle?
Wie macht Spark tatsächlich seine cartesian
und distinct
Operationen hinter der Szene?
Woher weiß ich also, welche Operationen den Netzwerkverkehr in Spark benötigen? Wie Sie bereits erwähnt haben, ist "Kartesisch" auf Grund seiner Datenbewegungen eine teure Operation. Daher wäre es für uns besser zu wissen, welche anderen Operationen dieses Verhalten haben, damit wir es vermeiden können. – Tim
Wenn Operationen nur durch 'mapPartitions' (' map', 'filter' usw.) ausgedrückt werden, ist keine Datenverschiebung erforderlich. Andernfalls verschiebt es Daten möglicherweise auf andere Weise. – zero323
mehr Infos von offiziellen Funken docs http://spark.apache.org/docs/latest/programming-guide.html#shuffle-operations – DanielVL