2012-12-07 10 views
5

verarbeiten Ich benutze mrjob, um einen Stapel von Dateien zu verarbeiten und einige Statistiken zu erhalten. Ich weiß, ich kann mapreduce Job auf einer einzigen Datei, wieWie kann ich iterately alle Dateien in einem Verzeichnis mit mrjob

python count.py <some_input_file> output 

Aber wie kann ich füttern ein Verzeichnis von Dateien in das Skript ausführen? Die Dateiverzeichnisstruktur ist wie folgt: folder/subfolders/files, gibt es einen Vorschlag?

Antwort

6

Nun, endlich finde ich, dass ich ein Verzeichnis als Eingabepfad angeben kann und Hadoop wird alle Dateien in diesem Verzeichnis verarbeiten.

Weiter in meinem Fall habe ich Unterverzeichnisse, die die Eingabedateien enthalten. Hadoop wird Verzeichnis nicht rekursiv transversieren und wird standardmäßig Fehler verursachen. Ein üblicher Trick ist die Verwendung von Wildcard-Globs wie

python count.py hdfs://master-host/directory/*/*.txt > result