unix – 使用命令行查找hdfs分布式文件中的总行数

前端之家收集整理的这篇文章主要介绍了unix – 使用命令行查找hdfs分布式文件中的总行数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个集群,其中数据集以分布式方式保存在hdfs中.这是我有的:
[hmi@bdadev-5 ~]$hadoop fs -ls /bdatest/clm/data/
Found 1840 items
-rw-r--r--   3 bda supergroup          0 2015-08-11 00:32 /bdatest/clm/data/_SUCCESS
-rw-r--r--   3 bda supergroup   34404390 2015-08-11 00:32 /bdatest/clm/data/part-00000
-rw-r--r--   3 bda supergroup   34404062 2015-08-11 00:32 /bdatest/clm/data/part-00001
-rw-r--r--   3 bda supergroup   34404259 2015-08-11 00:32 /bdatest/clm/data/part-00002
....
....

数据格式如下:

[hmi@bdadev-5 ~]$hadoop fs -cat /bdatest/clm/data/part-00000|head
V|485715986|1|8ca217a3d75d8236|Y|Y|Y|Y/1X||Trimode|SAMSUNG|1x/Trimode|High|Phone|N|Y|Y|Y|N|Basic|Basic|Basic|Basic|N|N|N|N|Y|N|Basic-Communicator|Y|Basic|N|Y|1X|Basic|1X|||SAM|Other|SCH-A870|SCH-A870|N|N|M2MC|

所以,我想要做的是计算原始数据文件数据中的总行数.我的理解是像00000,part-00001等分布式块有重叠.因此,只计算part-xxxx文件中的行数并对它们求和将不起作用.原始数据集数据的大小约为70GB.如何有效地找出总行数?

更有效率 – 您可以使用spark来计算数量.的线条.以下代码段有助于计算行数.
text_file = spark.textFile("hdfs://...")
count = text_file.count();
count.dump();

显示了没有的计数.的线条.

注意:不同零件文件中的数据不会重叠

使用hdfs dfs -cat / bdatest / clm / data / part- * | wc -l也会为您提供输出,但这会将所有数据转储到本地计算机并花费更长的时间.

最好的解决方案是使用MapReduce或spark. MapReduce需要更长的时间来开发和执行.如果安装了火花,这是最好的选择.

猜你在找的Bash相关文章