2017-02-05 5 views
-2

Da ich das Ressourcenlimit in meinem Spark-Programm erreicht habe, möchte ich die Verarbeitung in Iterationen unterteilen und die Ergebnisse von jeder Iteration in das HDFS hochladen, wie unten gezeigt.Wie werden zwei RDDs seriell in Spark verarbeitet?

do something using first rdd 
upload the output to hdfs 

do something using second rdd 
upload the output to hdfs 

Aber soweit ich weiß, wird Spark versuchen, diese beiden parallel zu laufen. Gibt es eine Möglichkeit, auf die Verarbeitung der ersten RDD zu warten, bevor die zweite RDD verarbeitet wird?

+0

Wer hat Ihnen gesagt, dass Spark versuchen wird, beide RDDs parallel zu verarbeiten? Das ist falsch! – eliasah

+0

Also wird das seriell verarbeitet? – pythonic

+3

Ja! Wenn du es getestet hättest, hättest du es gewusst. – eliasah

Antwort

0

Gibt es eine Möglichkeit für die Verarbeitung des ersten rdd zu warten, bevor die zweite rdd Verarbeitung

Sie die RDD, also warum müssen Sie wieder von der Festplatte gelesen warten?

Führen Sie einige Transformationen auf der RDD durch, schreiben Sie auf die Festplatte in der ersten Aktion, und fahren Sie mit derselben RDD fort, um eine zweite Aktion auszuführen.

+0

Möglich, aber dann würde ich mehr Änderungen in meinem Programm vornehmen müssen. – pythonic

+1

Sie könnten etwas Code zeigen, aber bei "second rdd" nehme ich an, Sie meinten, dass es ursprünglich aus dem ersten stammt –

1

Ich glaube ich verstehe, wo du verwirrt bist. Innerhalb einer einzelnen RDD werden die Partitionen parallel zueinander ausgeführt. Zwei RDDs werden jedoch nacheinander ausgeführt (sofern Sie nicht anderweitig codieren).

Verwandte Themen