加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:58:28 所属栏目:安全 来源:网络整理
导读:我正在开发一个集群,其中数据集以分布式方式保存在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 344043
我正在开发一个集群,其中数据集以分布式方式保存在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需要更长的时间来开发和执行.如果安装了火花,这是最好的选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读