一、理论

HIVE中都是按等值连接来统计的,理论上两种写法统计结果应该是一致的;

二、实际情况

但实际使用中发现两种写法会返回的结果,总会有一些差距虽然差别不大,但让人很是困惑。

三、原因

当使用join on的时候,如果右表有重复数据就会关联更多的数据,因为它们都符合join on上的条件;

而使用left semi join的时候,当join左侧表中的记录在join右侧表上查询到符合条件的记录就会返回,而不会再继续查找右侧表中剩余记录了,所以即使右侧表中有重复,也不会对统计结果有啥影响。 

相关文章:

  • 2022-03-04
  • 2021-10-20
  • 2021-08-22
  • 2022-12-23
  • 2021-08-26
  • 2021-04-18
  • 2022-01-15
猜你喜欢
  • 2021-10-13
  • 2021-11-15
  • 2021-10-12
  • 2021-10-30
  • 2021-04-14
  • 2022-01-25
  • 2021-12-10
相关资源
相似解决方案