Comment compter les lignes dans un fichier sur la commande hdfs?
J'ai un fichier sur HDFS que je veux savoir le nombre de lignes. (testfile)
Dans linux, je peux le faire:
wc -l <filename>
Puis-je faire quelque chose de similaire avec "hadoop fs de la commande"? Je peux imprimer le contenu du fichier avec:
hadoop fs -text /user/mklein/testfile
Comment puis-je savoir combien de lignes? Je veux éviter de copier le fichier dans le système de fichiers local puis en exécutant le wc de commande.
Note: Mon fichier est compressé à l'aide de la rapidité de compression, qui est pourquoi j'ai pour l'utilisation de texte au lieu de -chat
source d'informationauteur Setsuna
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas le faire avec un
hadoop fs
de commande. Soit vous avez à écrire un code mapreduce avec la logique expliquée dans ce post ou ce script pig en aide.Makesure vous avez l'extension correcte pour votre snappy fichier, de sorte que le cochon pu le détecter et de le lire.
Nombre Total de fichiers:
hadoop fs -ls /path/to/hdfs/* | wc -l
Nombre Total de lignes:
hadoop fs -cat /path/to/hdfs/* | wc -l
Nombre Total de lignes d'un fichier donné:
hadoop fs -cat /path/to/hdfs/filename | wc -l
Nombre de lignes d'un mappeur de fichier de sortie:
~]$ hadoop fs -cat /user/cloudera/output/part-m-00000 | wc -l
Nombre de lignes d'un texte ou tout autre fichier sur hdfs:
~]$ hadoop fs -cat /user/cloudera/output/abc.txt | wc -l
Haut (Header) de 5 lignes d'un texte ou tout autre fichier sur hdfs:
~]$ hadoop fs -cat /user/cloudera/output/abc.txt | head -5
Bas 10 lignes d'un texte ou tout autre fichier sur hdfs:
~]$ hadoop fs -cat /user/cloudera/output/abc.txt | tail -10