Funktioniert flamMap in Spark wie die Kartenfunktion und verursacht daher kein Mischen oder löst einen Shuffle aus. Ich vermute, dass es schlurrt. Kann es jemand bestätigen?Verursacht eine flatMap im Funken einen Shuffle?
Antwort
Es gibt kein Mischen mit Map oder FlatMap. Die Operationen, die Shuffle verursachen, sind:
- Repartition Operationen:
- Repartition:
- Coalesce:
- ByKey Operationen (mit Ausnahme Zählung):
- GroupByKey:
- ReduceByKey:
- Join-Operationen:
- Cogroup:
- Registriert:
Obwohl die Menge der Elemente in jeder Partition neu gemischt Daten deterministisch sein, und so ist die Ordnung der Partitionen selbst, die Reihenfolge dieser Elemente ist nicht. Will man folgende Shuffle vorhersagbar Daten bestellt, dann ist es möglich, zu verwenden:
- mapPartitions jede Partition zu sortieren verwenden, beispielsweise .sorted
- repartitionAndSortWithinPartitions effizient Partitionen zu sortieren, während gleichzeitig repartitioning
- sortBy machen ein global RDD bestellt
Mehr Infos hier: http://spark.apache.org/docs/latest/programming-guide.html#shuffle-operations
Die Antwort muss eine Korrektur- Coalesce doesnt produzieren ein Mischen. Es ist eine enge RSS-Abhängigkeit. – bigdatamann
Kein Mischen. Hier sind die Quellen für beide Funktionen:
/**
* Return a new RDD by applying a function to all elements of this RDD.
*/
def map[U: ClassTag](f: T => U): RDD[U] = withScope {
val cleanF = sc.clean(f)
new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.map(cleanF))
}
/**
* Return a new RDD by first applying a function to all elements of this
* RDD, and then flattening the results.
*/
def flatMap[U: ClassTag](f: T => TraversableOnce[U]): RDD[U] = withScope {
val cleanF = sc.clean(f)
new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.flatMap(cleanF))
}
Wie Sie sehen können, RDD.flatMap
nur ruft flatMap
auf Scala Iterator, der Partition darstellt.
- 1. Spark Cartesian verursacht keine Shuffle?
- 2. Scala flatmap Speichern in Cassandra über Funken in Schleife
- 3. Gruppierte UITableView Zeilen mit unterschiedlichen Höhen verursacht Inhalt Shuffle
- 4. Funken: Geben Sie einen Vektor
- 5. zu viele Kartenschlüssel aus dem Speicher Ausnahme in Funken verursacht
- 6. Was bedeutet "lokal [*]" im Funken?
- 7. Spark: Anzahl der Partitionen erhöhen, ohne einen Shuffle zu verursachen?
- 8. Funken - Filter in Karte
- 9. Futures - Karte vs flatmap
- 10. effizient takeByKey für Funken implementieren
- 11. SwiftyJSON Shuffle
- 12. SparkR filterRDD und flatMap nicht
- 13. Scala - Rückgängig eine flatmap nach transfomation
- 14. Kann ich eine optionaleInt nicht zuordnen/flatMap?
- 15. Mehrere FlatMap-Methoden für eine einzelne Monade?
- 16. RxJava- Wie man eine Flatmap() zurückdrückt
- 17. Swift flatMap und Generics
- 18. Warum Join und Gruppe von beeinflusst die Menge der Daten shuffle in Funken
- 19. Playlist Shuffle ein/aus
- 20. Shuffle Groups Algorithmus
- 21. verketten Listen flatMap mit
- 22. Funken dynamische Zuordnung Executoren Fehler
- 23. XSLT, `flatmap` wie Operation
- 24. Flatmap-Äquivalent in PowerShell
- 25. Text Shuffle JQuery/Javascript
- 26. java.lang.OutOfMemoryError im Zusammenhang mit Funken Graphframe bfs
- 27. Kann FlatMap auf RDD
- 28. shuffle Fehler in hadoop
- 29. Funken App [Fehler] (*: Assembly) Deduplizierung: verschiedene Dateiinhalte im folgenden gefunden:
- 30. MapReduce Shuffle Phase Flaschenhals
Siehe http://stackoverflow.com/questions/26273664/what-are-the-spark-transformations-that-causes-a-shuffle –