2016-09-15 2 views
0

Ich muss einen externen Prozess von meinem EMR Spark-Job aufrufen. Ich sehe, dass rdd.pipe mir erlauben würde, eine RDD zu einem Prozess zu leiten. (Nebenbei, ist das ein Prozess pro RDD oder einer pro Element?).RDD zu in.file zu externem Prozess zu out.file zu RDD

Allerdings erfordert mein externer Prozess einen Dateinamen als Eingabe und generiert eine Datei als Ausgabe.

Wie kann ich diesen externen Prozess aufrufen und anschließend die Ausgabedatei als RDD laden?

Antwort

1

ist das ein Prozess pro RDD oder einer pro Element?

Weder. Es ist ein Prozess pro Partition.

Prozess benötigt einen Dateinamen als Eingabe und generiert eine Datei als Ausgabe. Wie kann

Die einfachste Lösung einen einfachen Wrapper zu schreiben ist, die zufällig generierten Pfad schreibt, ruft Ihr Programm liest die Datei und schreibt auf die Standardausgabe und das ist so ziemlich alles, was pipe geht. Wenn Sie nicht in ein verteiltes Dateisystem schreiben, können Sie die Ausgabe sonst nicht abrufen.