Hadoop 如何使用hdfs命令计算文件中的行数?

Hadoop 如何使用hdfs命令计算文件中的行数?,hadoop,Hadoop,我有一个关于HDFS的文件,我想知道有多少行。(测试文件) 在linux中,我可以做到: wc -l <filename> 我怎么知道我有多少行?我希望避免将文件复制到本地文件系统,然后运行wc命令 注意:我的文件是使用snappy compression压缩的,这就是为什么我必须使用-text而不是-cat您不能使用hadoop fs命令进行压缩。要么您必须使用本文中解释的逻辑编写mapreduce代码,要么这个pig脚本会有所帮助 A = LOAD 'file' using P

我有一个关于HDFS的文件,我想知道有多少行。(测试文件)

在linux中,我可以做到:

wc -l <filename>
我怎么知道我有多少行?我希望避免将文件复制到本地文件系统,然后运行wc命令


注意:我的文件是使用snappy compression压缩的,这就是为什么我必须使用-text而不是-cat

您不能使用
hadoop fs
命令进行压缩。要么您必须使用本文中解释的逻辑编写mapreduce代码,要么这个pig脚本会有所帮助

A = LOAD 'file' using PigStorage() as(...);
B = group A all;
cnt = foreach B generate COUNT(A);

确保您的snappy文件具有正确的扩展名,以便pig能够检测并读取它。

文件总数: hadoop fs-ls/path/to/hdfs/*| wc-l

总行数: hadoop fs-cat/path/to/hdfs/*| wc-l

给定文件的总行数:
hadoop fs-cat/path/to/hdfs/filename | wc-l1。映射器输出文件的行数:

`~]$ hadoop fs -cat /user/cloudera/output/part-m-00000 | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | head -5`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | tail -10`
2。hdfs上文本或任何其他文件的行数:

`~]$ hadoop fs -cat /user/cloudera/output/part-m-00000 | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | head -5`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | tail -10`
3。hdfs上文本或任何其他文件的顶部(标题)5行:

`~]$ hadoop fs -cat /user/cloudera/output/part-m-00000 | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | head -5`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | tail -10`
4。hdfs上文本或任何其他文件的最后10行:

`~]$ hadoop fs -cat /user/cloudera/output/part-m-00000 | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | wc -l`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | head -5`
`~]$ hadoop fs -cat /user/cloudera/output/abc.txt | tail -10`

我比公认的答案更喜欢这个答案。被接受的答案似乎有很多开销,这是一个完美的答案。做得好!请注意,这将把hdfs文件夹中的所有数据拉入本地计算机,并在本地进行行计数。如果数据量很大,由于网络IO和内存使用的瓶颈,这可能会非常缓慢。对于大数据,map-reduce/pig方法会更好。@ScottH很好的注释,对于非常大的数据集,我会担心IO,但您确定内存使用是一个问题吗?从hadoop fs-cat something | head的工作原理来看,我希望数据在运行过程中会“减少”。@DennisJaheruddin听起来似乎有可能在运行过程中“减少”。我还没有测试过。如果你弄清楚内存是否真的是个问题,我很想听听。当hdfs路径太大时,需要很长时间吗?这不是真正正确的方法,简单的方法就在下面。如果你必须处理大数据,简单的方法就不会扩展。其他选项:创建一个包含一列的外部配置单元表并计算行数或使用简单的Spark作业。