Hive count(*) 无限期运行,并且数据会预先填充值

Hive count(*) runs indefinitely, and data gets prepopulated with values

我正在尝试使用 sqoop 从 RDBMS 将数据加载到配置单元中。

一旦我用数据填充配置单元 table,并尝试 运行 计数 (*),查询将永远 运行s。此外,如果我删除(外部)配置单元 table 并从 hdfs 目录中删除所有内容,然后创建一个类似的,table 会预先填充旧数据(与删除的 table 相同)即使我从我的 hdfs 目录中删除了所有内容并且实际上垃圾也被清除了。

仍然,数据被填充并且计数 (*) 运行 无限期地在它上面。

更新 1

它是一个独立的沙箱 hortonworks(2.4) 环境。 我从 hive 中删除了 table 并从 HDFS 中删除了相关文件。 我有一个脚本来创建和加载数据。

drop table employee;

和我 运行 以下命令

 hadoop fs -rm -r /user/hive/warehouse/intermidiateTable/* ,and,
 hadoop fs -rm -r  .Trash/Current/user/hive/warehouse/intermidiateTable/*

然后我使用与此相同的查询创建 table:

create external table employee (id int, name string, account_no bigint, balance bigint, date_field timestamp, created_by string, created_date string,batch_id int, updated_by string, updated_date string)
            row format delimited
            fields terminated by ','
            lines terminated by '\n'
            location '/user/hive/warehouse/intermidiateTable';

当我执行 select 查询时,table 会填充较旧的数据。 Als0,一个 select count(*) 运行 无限期。

向某人推荐一个解决方案。

如果您在仓库目录本身内部创建外部 table,那么将 table 声明为 'external' 的目的是什么,不是吗?

不是外部的 table 应该在仓库目录之外,因此您可以控制数据文件而不是配置单元本身。