我在HBase数据源上创建了一个Hive表,并将S3中的数据(CSV文件)导入到该表中。这是在AWS EMR上运行。
我用少量行验证了这一点,很好。
然而,当我导入一个合理的数据集(1000万行)时,我得到了Hive给我的计数和HBase给我的数据的差异。
如果我在HBase中计算,我会得到1000万的结果。
如果我在Hive中计数,我会得到9,932,183的结果。
我已经编写了一个查询,以便将导入的数据与源S3数据进行比较,但即使在中等规模的群集上也需要花费大量的时间来执行。
与此同时,寻找可能导致这种差异的可能性和想法。
我应该注意到,我会把自己归类为这个部门的菜鸟。
答案 0 :(得分:1)
可能缺少的行与hive表架构不一致。
答案 1 :(得分:0)
维杰你是对的。
源数据有67,817行,其中一列是NULL。
此数据已成功插入HBASE。
然而,Hive架构声明此数据已映射到BIGINT类型,因此Hive排除了整行,因为它与架构不匹配。