我有两个表t1包含300万条记录,而t2包含11000条记录。我执行查询
Select Count(*) FROM
t1 LEFT JOIN t2
ON t1.id = t2.id
我在sql工作台上执行此查询,它返回3百万,这是正确的,因为它是一个左连接。但是当我将这些数据上传到Hive并运行相同的查询时,它返回9Million。任何人都可以解释为什么会这样吗?与普通SQL相比,Hive中的连接行为有何不同?
答案 0 :(得分:0)
数据不一样。我建议使用“直方图直方图”查询来找出问题所在:
select cnt, count(*), min(id), max(id)
from (select id, count(t2.id) as cnt
from t1 left join
t2
on t1.id = t2.id
group by id
) t
group by cnt
order by cnt;
这将给出有多少不匹配的概念;有多少连体衣,二十几岁等等。
答案 1 :(得分:0)
使用配置单元
select count(*) from tb1
看数据是3百万
tb2 id one-to-many
hive插入日期选择?
答案 2 :(得分:0)
试试这个
Select COUNT(id) FROM
t1 LEFT OUTER JOIN t2
ON t1.id = t2.id;