Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 即使从hdfs中删除数据,配置单元如何读取数据?_Hadoop_Hive_Hdfs_Impala - Fatal编程技术网

Hadoop 即使从hdfs中删除数据,配置单元如何读取数据?

Hadoop 即使从hdfs中删除数据,配置单元如何读取数据?,hadoop,hive,hdfs,impala,Hadoop,Hive,Hdfs,Impala,我在配置单元中有一个外部表,指向HDFS位置。我错误地运行了两次将数据加载到HDFS的作业 即使在从HDFS配置单元删除重复文件后,数据计数也会显示两次,即。包括已删除的重复数据文件计数 从tbl_名称中选择计数*返回双倍时间 但是, 从tbl_名称中选择countcol_名称-返回实际计数 之后我在黑斑羚身上试过的那张桌子 使元数据无效 我只能看到HDFSnot duplicate中可用的数据计数 hive如何在从物理位置删除HDFS后将计数设为双倍,它是否从统计数据中读取?hive正在使用统

我在配置单元中有一个外部表,指向HDFS位置。我错误地运行了两次将数据加载到HDFS的作业

即使在从HDFS配置单元删除重复文件后,数据计数也会显示两次,即。包括已删除的重复数据文件计数

从tbl_名称中选择计数*返回双倍时间

但是,

从tbl_名称中选择countcol_名称-返回实际计数

之后我在黑斑羚身上试过的那张桌子

使元数据无效

我只能看到HDFSnot duplicate中可用的数据计数


hive如何在从物理位置删除HDFS后将计数设为双倍,它是否从统计数据中读取?

hive正在使用统计数据计算cont*。您未使用配置单元手动删除了文件,这就是统计信息错误的原因

解决办法是:

要在这种情况下关闭统计信息的使用,请执行以下操作:

设置hive.compute.query.using.stats=false

要分析您在评论中提到的表,请执行以下操作:

分析表tbl_名称分区A、b、c计算统计信息


那很有趣。我从来没有在蜂箱中发生过这种情况,但我会在我的系统中尝试,看看会发生什么。是的,我没有这个问题。我拿了一个只有一个csv文件的外部表。然后复制该文件,使HDFS目录中有两个文件,并且计数显示为两倍。然后删除了复制的文件,计数恢复正常。似乎是同一类型的线程对解决方案不确定,,我没有任何统计数据专用数据库,这有任何意义。非常奇怪,Hive CLI返回正确的计数,但Hue返回错误的计数*仅供参考-我正在通过Hue.yep运行查询,它看起来像配置设置set hive.compute.query.using.stats=false;在我的环境中被设置为默认值,这就是我没有问题的原因。