2016-05-06 7 views
1

ich mehrere ZIP-Dateien in HDFS enthält zwei Arten von Dateien (A.csv & B.csv)Wie mehrere ZIP-Dateien in HDFS entpacken

HDFS Lage

/data/jan.zip --> contains A.csv & B.csv 
/data/feb.zip --> contains A.csv & B.csv 

ich die Dateien extrahieren möchten zum HDFS-Standort wie unten

/data/jan/A.csv 
/data/jan/B.csv 
/data/feb/A.csv 
/data/feb/B.csv 

Ich bin auf der Suche nach s ome Befehl wie unten in jedem Tech (Funke, Schwein, bienenstock, ..)

hadoop fs -unzip hdfs://..../abc.zip 
+0

Kontrolle dieses http://blog.puneethabm.in/hadoop-hdfs-commands/ – BruceWayne

+0

habe ich versucht, die in dem Blog-Befehl, aber es hat nicht funktioniert. Es erstellt einige TXT-Datei mit dem Header der Zip-Datei und zufällige Zeichen – Munesh

Antwort

1
  1. können Sie mit UNIX pipes. In Ihrem Fall müssen Sie durch Datenordner in hdfs Schleife und für jede Postleitzahl Sie wie folgenden Befehl Beispiel ausführen müssen

Zum Beispiel: hadoop fs -cat abc.zip | unzip -d xxxx | hadoop fs -put src dest

  1. Sie können IdentityMapper verwenden, dies kann etwas seltsam sein.
  2. Sie können versuchen FileUtils über Java, die unten Methoden hat. Ich habe in Hadoop API gesucht und ich habe dies habe ich nicht versucht, aber nach doc kann es funktionieren. enter image description here
+0

Erste Option hat nicht funktioniert. Können Sie bitte überprüfen Sie es einmal lassen Sie mich wissen – Munesh

+0

@Munesh: War meine Antwort hilfreich? Wenn ja, können Sie pls. Akzeptiere es –

+0

Beim Ausführen des angegebenen Befehls hadoop fs .., wird unten der Fehler ausgelöst. Fehler: muss das Verzeichnis angeben, in das mit der Option -d extrahiert werden soll Setzen: '

/test ': Keine solche Datei oder Verzeichnis cat: Kann nicht in Ausgabestrom schreiben. Können Sie bitte chk einmal lassen Sie mich wissen, was fehlt mir b4 die Antwort zu akzeptieren? – Munesh