Hive 中的加入行为是否不同?
Do joins in Hive behave differently?
我有两个表 t1 包含 300 万条记录,t2 包含 11000 条记录。我执行查询
Select Count(*) FROM
t1 LEFT JOIN t2
ON t1.id = t2.id
我在 sql workbench 上执行此查询,它 returns 300 万是正确的,因为它是左连接。但是,当我将此数据上传到 Hive 和 运行 相同的查询时,它 returns 900 万。谁能解释为什么会这样?与正常相比,连接在 Hive 中的行为是否不同 SQL?
数据不一样。我建议使用 "histogram of histogram" 查询来找出问题所在:
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;
这将给出有多少不匹配的信息;有多少个连体衣、双胞胎等等。
使用配置单元
select count(*) from tb1
看数据数是300万
tb2 id一对多
hive 插入日期 select?
试试这个
Select COUNT(id) FROM
t1 LEFT OUTER JOIN t2
ON t1.id = t2.id;
我有两个表 t1 包含 300 万条记录,t2 包含 11000 条记录。我执行查询
Select Count(*) FROM
t1 LEFT JOIN t2
ON t1.id = t2.id
我在 sql workbench 上执行此查询,它 returns 300 万是正确的,因为它是左连接。但是,当我将此数据上传到 Hive 和 运行 相同的查询时,它 returns 900 万。谁能解释为什么会这样?与正常相比,连接在 Hive 中的行为是否不同 SQL?
数据不一样。我建议使用 "histogram of histogram" 查询来找出问题所在:
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;
这将给出有多少不匹配的信息;有多少个连体衣、双胞胎等等。
使用配置单元
select count(*) from tb1
看数据数是300万
tb2 id一对多
hive 插入日期 select?
试试这个
Select COUNT(id) FROM
t1 LEFT OUTER JOIN t2
ON t1.id = t2.id;