Dies mag eine grundlegende Frage sein, aber ich habe einige Schwierigkeiten, dies zu verstehen.Spark Streaming Union Stream - Parallelisierung
Ich verwende derzeit die Microsoft Azure Event Hubs Streaming in meiner Spark/Scala-Anwendung, die Kafka ähnlich ist.
Wenn ich einen Unionized-Stream erstellt habe, glaube ich, dass diese Union mehrere DStream-Objekte abstrahiert aussehen wie ein einzelner DStream, werden die mehreren RDDs im Stream parallel verarbeitet, oder wird jede RDD einzeln verarbeitet?
Um zu versuchen und zu erklären, dies mehr, hier ist ein kurzes Beispiel:
sparkConf.set(SparkArgumentKeys.MaxCores, (partitionCount * 2).toString)
val ssc = new StreamingContext(sparkConf, streamDuration)
val stream = EventHubsUtils.createUnionStream(ssc, hubParams, storageLevel)
stream.checkpoint(streamDuration)
val strings = stream.map(f => new String(f))
strings.foreachRDD(rdd => {
rdd.map(f => f.split(' '))
})
partitionCount ist die Anzahl der Partitionen in dem azur Ereignisse Hub.
- Führt die initiale "stream.map" auf jeder RDD parallel?
- Verarbeitet "string.foreachRDD" jeweils eine einzelne RDD oder verarbeitet sie alle RDDs parallel?
vage angewendet wird und somit ziemlich schwer zu folgen – thebluephantom
@thebluephantom Was meinst du? Was ändert sich für dich? –
Nun, ich habe die foreachRDD recherchiert und mich selbst veröffentlicht, da ich die Dokumentation etwas irreführend finde. Es ist ein heikles Thema und ich sehe, du bist mir voraus. Aber in einem Gericht - unabhängig von der grünen Zecke - ist es mir nicht klar genug. – thebluephantom