我正在计算hdfs
/HIVE
中文件的行数。在某些情况下,我希望在HIVE
中显示整个表的行数,在某些情况中,我希望仅在HIVE
中显示文件中的行数。
我尝试过一些东西,比如!hadoop fs -count /<path to file(s)/
,但这只给出了FILE COUNT
,然后是CONTENT_SIZE
。从这里
如何获取行数?
如果您想知道行的总数,可以查看"映射输入记录"计数器。这将为您提供给定输入中的总行数(这是目录中的所有文件)。
如果你需要给定文件中的行数(我仍然不明白你为什么需要),你需要为读取给定文件的映射器获取相同的计数器。这可能会有点棘手,但它是可行的。
如果您在Yarn上使用Hadoop,我建议您使用Yarn的REST API,它非常易于使用,并且非常方便地在M/R处理的某些部分进行这种"快速查询"。
Hive不允许您仅在一个文件上创建表。请记住,当您在配置单元中创建表时,您会在文件夹顶部创建它。(这允许我们添加更多文件)
只有一种方法可以在配置单元中的表中只读取一个文件。
将data[local]inpath'/input_folder/input_file.txt'加载到dest_table表中;
计算表中的行数
从dest_table中选择count(*);
下面的链接有一些有用的信息:
如何将文本文件加载到存储为序列文件的Hive表中