Wie wird das Blockieren von E / A in einem Apache-Spark-Job durchgeführt?

Was passiert, wenn ich beim Durchlaufen von RDD Werte im Datensatz durch Aufrufen eines externen (blockierenden) Dienstes berechnen muss? Wie denkst du, könnte das erreicht werden?

val Werte:Future[RDD[Double]] = Future sequence tasks

Ich habe versucht, eine Liste von Futures zu erstellen, aber da die RDD-ID nicht überfahrbar ist, ist Future.sequence nicht geeignet.

Ich frage mich nur, ob jemand ein solches Problem hatte und wie hast du es gelöst? Was ich versuche zu erreichen, ist, eine Parallelität auf einem einzelnen Worker-Knoten zu erhalten, damit ich diesen externen Service aufrufen kann 3000 mal prozweit.

Möglicherweise gibt es eine andere Lösung, die besser für Funken geeignet ist, z. B. mehrere Arbeitsknoten auf einem Host.

Es ist interessant zu wissen, wie Sie mit einer solchen Herausforderung umgehen? Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage