【发布时间】:2016-12-04 13:22:16
【问题描述】:
从 Hive 表插入到 HIve 表时,它加载的记录比实际记录多。任何人都可以帮助解决 Hive 的这种奇怪行为吗?
我的查询将如下所示:
insert overwrite table_a
select col1,col2,col3,... from table_b;
我的 table_b 包含 6405465 条记录。
从table_b插入到table_a后,发现table_a的记录总数为6406565。
有人可以帮忙吗?
【问题讨论】:
-
它们的存储方式不同吗?也许您在某些数据中有
table_a行分隔符 -
是的,table_b 是普通的文本表。其中 table_a 是分区文本表。并且两个表的行都由'\n'分隔,字段由'\t'分隔
-
另见:stackoverflow.com/a/39914232/2700344 检查您是否使用统计信息进行计数(*)计算
-
在设置 hive.compute.query.using.stats=false 后,它会显示相同的记录数。但是你能用 ture 选项解释一下为什么之前会发生这种情况吗?
-
解释。请看我的回答。
标签: hadoop mapreduce hive hiveql