在hive中,使用mr查是0条,使用tez有数据

刘超 22天前 ⋅ 4181 阅读   编辑

一、问题

  在hive中,使用mr查是0条,使用tez有数据

二、分析

  1、如果使用tez做了union all,则会有多个目录, mr不会递归去找,tez会。

  2、count(*)结果使用的是表结构中的numRows的值,但numRows不正确,所以导致结果不对

三、解决方法

  针对情况1,在hive-site.xml中,添加如下配置

<property>
    <name>mapred.input.dir.recursive</name>
    <value>true</value>
  </property>

  <property>
    <name>hive.mapred.supports.subdirectories</name>
    <value>true</value>
  </property>

  针对情况2,可以使用analyze命令对表重新更新统计信息并重新统计后结果正确

analyze table 表名 compute statistics;

示例

hive -e "analyze table test1 compute statistics;"

四、参考文章

  1、https://stackoverflow.com/questions/26767713/can-hive-recursively-descend-into-subdirectories-without-partitions-or-editing-h


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: