So listen Sie nur die Dateinamen in HDFS auf
Ich würde gerne wissen, gibt es eine Kommando/Ausdruck ein, um nur die Dateinamen in hadoop. Ich brauche zu Holen, nur den Namen der Datei, wenn ich hadoop fs -ls
es gibt den gesamten Pfad.
Ich habe versucht, unten aber nur Wundern, wenn einige besseren Weg, es zu tun.
hadoop fs -ls <HDFS_DIR>|cut -d ' ' -f17
InformationsquelleAutor der Frage Navneet Kumar | 2014-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es hadoop-ls unterstützt nicht alle Optionen, um die Ausgabe nur die Dateinamenoder auch nur die Letzte Spalte.
Wenn Sie wünschen, erhalten Sie die Letzte Spalte, die zuverlässig ist, sollten Sie zuerst konvertieren Sie die whitespace zu einem einzelnen Raum, so dass Sie können dann die Adresse der letzten Spalte:
Diese erhalten Sie nur die Letzte Spalte, aber die Dateien mit dem kompletten Pfad. Wenn Sie möchten, dass nur Dateinamen, die Sie verwenden können, basename, da @rojomoke schlägt vor:
Ich auch herausgefiltert die erste Zeile besagt, dass
Found ?x items
Hinweis: beachten Sie, dass, wie @felix-frank-Hinweise in die Kommentare, dass der obige Befehl nicht richtig erhalten Dateinamen mit mehreren aufeinanderfolgenden Leerzeichen erhalten. Daher ist eine weitere richtige Lösung vorgeschlagen von Felix:
hadoop fs -ls /tmp | sed 1d | perl -wlne'print +(split " ",$_,8)[7]'
InformationsquelleAutor der Antwort Jakub Kotowski
Den folgenden Befehl zurück Dateinamen nur:
InformationsquelleAutor der Antwort MichealKum
Ich hoffe, dies hilft jemand - mit der version 2.8.x+ (erhältlich in 3) -
InformationsquelleAutor der Antwort anirudh.vyas
Verwenden Sie den "basename" - Befehl, der Streifen ein beliebiges Präfix endet in '/' aus dem string.
InformationsquelleAutor der Antwort rojomoke
Den Nachstehenden Befehl zurück nur die Dateinamen im Verzeichnis.
Awk Teilt die Liste, die durch '/' und druckt Letzte Feld, das wäre der name der Datei.
hdfs dfs -ls /<folder> | awk -F'/' '{print $NF}'
InformationsquelleAutor der Antwort Vinod ram