Ich möchte überprüfen, ob mehrere Dateien in hdfs vorhanden sind, bevor sie von SparkContext geladen werden. Ich benutze pyspark. Ich habe versucht os.system("hadoop fs -test -e %s" %path)
aber da ich eine Menge Pfade zu überprüfen haben, stürzte der Job. Ich habe auch versucht sc.wholeTextFiles(parent_path)
und dann nach Schlüsseln zu filtern. aber es stürzte auch ab, weil der parent_path viele Unterpfade und Dateien enthält. Können Sie mir helfen?pyspark: Wie überprüft man, ob eine Datei in hdfs existiert
Antwort
Rigth, wie es sagt Tristan Reid:
... (Funke) Es hat viele Formate lesen können, und es unterstützt Hadoop glob Ausdrücke, die von mehreren Pfaden in HDFS zum Lesen besonders nützlich sind, aber es doesn Ich habe keine eingebaute Einrichtung, die mir zum Durchlaufen von Verzeichnissen oder Dateien bekannt ist, und auch keine speziellen Funktionen für die Interaktion mit Hadoop oder HDFS.
Wie auch immer, dies ist seine Antwort auf eine ähnliche Frage: Pyspark: get list of files/directories on HDFS path
Sobald Sie die Liste der Dateien in einem Verzeichnis haben, ist es einfach zu überprüfen, ob eine bestimmte Datei vorhanden ist.
Ich hoffe, es kann irgendwie helfen.
Haben Sie versucht, pydoop zu verwenden? Die exists
Funktion sollte funktionieren
Eine Möglichkeit ist, dass Sie hadoop fs -lsr your_path
verwenden können, um alle Pfade zu erhalten, und dann überprüfen, ob die Pfade, die Sie interessiert sind, in diesem Satz sind.
In Bezug auf Ihren Absturz ist es möglich, dass es ein Ergebnis aller Aufrufe an os.system
war, anstatt für den Hadoop-Befehl spezifisch zu sein. Manchmal kann das Aufrufen eines externen Prozesses zu Problemen führen, die sich auf Puffer beziehen, die niemals freigegeben werden, insbesondere auf E/A-Puffer (stdin/stdout).
Eine Lösung wäre, einen einzigen Aufruf an ein Bash-Skript zu machen, das alle Pfade durchläuft. Sie können das Skript mithilfe einer Zeichenfolgenvorlage in Ihrem Code erstellen, das Array der Pfade im Skript ausfüllen, es schreiben und dann ausführen.
Es kann auch eine gute Idee sein, zum subprocess
Modul von Python zu wechseln, das Ihnen granularere Kontrolle über das Behandeln von Unterprozessen gibt. Hier ist das Äquivalent von os.system
:
process = subprocess.check_output(
args=your_script,
stdout=PIPE,
shell=True
)
Beachten Sie, dass stdout
zu so etwas wie ein Datei-Handle wechseln, wenn, dass Sie mit Debugging hilft oder was das Verfahren robuster. Sie können auch das Argument shell=True
zu False
wechseln, es sei denn, Sie werden ein tatsächliches Skript aufrufen oder Shell-spezifische Dinge wie Pipes oder Umleitung verwenden.
- 1. Wie überprüft man, ob eine Datei in Apache Camel existiert?
- 2. Wie überprüft man, ob eine Datei in Matlab existiert?
- 3. Wie überprüft man, ob eine Klasse existiert
- 4. Wie überprüft man, ob eine Memory-Mapped-Datei existiert?
- 5. Wie überprüft man, ob das Fragment existiert?
- 6. Wie überprüft man, ob das AlbumArt existiert?
- 7. Wie überprüft man, ob ein Pfad existiert?
- 8. Wie überprüft man, ob eine Einschränkung in Sql Server existiert?
- 9. Wie überprüft man, ob eine Tabelle in Hive existiert?
- 10. Wie überprüft man, ob eine E-Mail in cpanel existiert
- 11. Wie überprüft man, ob Join nicht existiert?
- 12. Wie überprüft man, ob ein Registrierungsschlüssel existiert
- 13. Java Wie überprüft man, ob die Datei existiert und öffnet?
- 14. EF7 - Wie überprüft man, ob eine Datenbank existiert?
- 15. Wie überprüft man, ob eine Cassandra-Tabelle existiert
- 16. Wie überprüft man, ob eine MySQL-Datenbank existiert
- 17. Wie überprüft man, ob eine Buchung innerhalb des Zeitrahmens existiert?
- 18. Wie überprüft man, ob eine benannte Erfassungsgruppe existiert?
- 19. Wie überprüft man, ob eine implizite oder explizite Umwandlung existiert?
- 20. Wie überprüft man, ob die Hilfsmethode/Variable in rspec existiert?
- 21. Wie überprüft man, ob ein Modul in Lua existiert?
- 22. Wie überprüft man, ob in PHP ein String existiert? So
- 23. Wie überprüft man, ob ein Fensterstil in einem Hexadezimalformat existiert?
- 24. Wie überprüft man, ob eine Datei existiert und in C++ lesbar ist?
- 25. In HTML5-App, wie überprüft man, ob eine Datei mit Javascript existiert?
- 26. Wie überprüft man, ob eine Datei in der Windowsstore-App existiert
- 27. Wie überprüft man, ob eine Datei komprimiert ist in R
- 28. Wie überprüft man, ob eine Datei in Bash leer ist?
- 29. Wie überprüft man, ob das Feld in symfony2 Form existiert?
- 30. Wie überprüft man, ob der Datensatz in der Datenbank existiert