【发布时间】:2016-08-31 15:19:16
【问题描述】:
我在 hive 中有一个外部表并指向 HDFS 位置。我错误地运行了两次将数据加载到 HDFS 中的工作。
即使从 HDFS 配置单元中删除重复文件后,仍会显示两次数据计数(即包括已删除的重复数据文件计数)。
select count(*) from tbl_name -- 返回双倍时间
但是,
select count(col_name) from tbl_name -- 返回实际计数。
之后我从 Impala 尝试时的同一张桌子
无效元数据
我只能看到 HDFS 中可用的数据计数(不重复)。
即使从物理位置(hdfs)删除后,hive 如何将计数设为两倍,它是否从统计数据中读取?
【问题讨论】:
-
这很有趣。我在 Hive 中从未发生过这种情况,但我会在我的系统中尝试一下,看看会发生什么。
-
是的,我没有这个问题。我拿了一张外部表格,里面只有一个 csv 文件。然后复制该文件,因此 HDFS 目录中有两个文件,并且计数显示为两倍。然后删除复制的文件,计数恢复正常。
-
似乎同类型的线程不确定解决方案,stackoverflow.com/questions/24080276/…,我没有任何统计专用数据库,这是否有意义。
-
很奇怪,Hive CLI 返回正确的 count ,但是 Hue 返回错误的 count(*)
-
仅供参考 - 我正在通过 Hue 运行查询。