【问题标题】:Hive shows less rows than HBaseHive 显示的行数少于 HBase
【发布时间】:2014-11-05 10:25:04
【问题描述】:

我在 HBase 数据源上创建了一个 Hive 表,并将 S3 中的数据(CSV 文件)导入到该表中。这是在 AWS EMR 上运行的。

我已经用几行验证了这一点,这很好。

但是,当我导入一个合理的数据集(1000 万行)时,我发现 Hive 给我的计数和 HBase 给我的计数不一致。

如果我在 HBase 中进行计数,我会得到 1000 万的结果。

如果我在 Hive 中进行计数,我会得到 9,932,183 的结果。

我编写了一个查询来蛮力将导入的数据与源 S3 数据进行比较,但这需要大量时间才能执行,即使在中等规模的集群上也是如此。

与此同时,寻找可能导致这种差异的可能性和想法。

我应该注意,我会把自己归类为这个部门的菜鸟。

【问题讨论】:

    标签: hadoop amazon-web-services hive hbase


    【解决方案1】:

    可能缺少的行与配置单元表架构不一致。

    【讨论】:

    • 为什么它们会出现在 HBase 中?它们具有相同的架构,但 HBase 是否更“宽容”,即它会很乐意接受格式不匹配的数据,但 Hive 会排除这些数据?
    【解决方案2】:

    你是对的。

    源数据有 67,817 行,其中一列为 NULL。

    此数据已成功插入 HBASE。

    但是 Hive 架构声明此数据已映射到 BIGINT 类型,因此 Hive 排除了整行,因为它与架构不匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      相关资源
      最近更新 更多