一、理论
HIVE中都是按等值连接来统计的,理论上两种写法统计结果应该是一致的;
二、实际情况
但实际使用中发现两种写法会返回的结果,总会有一些差距虽然差别不大,但让人很是困惑。
三、原因
当使用join on的时候,如果右表有重复数据就会关联更多的数据,因为它们都符合join on上的条件;
而使用left semi join的时候,当join左侧表中的记录在join右侧表上查询到符合条件的记录就会返回,而不会再继续查找右侧表中剩余记录了,所以即使右侧表中有重复,也不会对统计结果有啥影响。
本文探讨了Hive中join on与left semi join两种连接方式的实际表现差异。通过具体案例分析了这两种连接方式在处理重复数据时的不同行为及其对统计结果的影响。
一、理论
HIVE中都是按等值连接来统计的,理论上两种写法统计结果应该是一致的;
二、实际情况
但实际使用中发现两种写法会返回的结果,总会有一些差距虽然差别不大,但让人很是困惑。
三、原因
当使用join on的时候,如果右表有重复数据就会关联更多的数据,因为它们都符合join on上的条件;
而使用left semi join的时候,当join左侧表中的记录在join右侧表上查询到符合条件的记录就会返回,而不会再继续查找右侧表中剩余记录了,所以即使右侧表中有重复,也不会对统计结果有啥影响。
593
1171
1443

被折叠的 条评论
为什么被折叠?