摘要:
一、理论HIVE中都是按等值连接来统计的,理论上两种写法统计结果应该是一致的;二、实际情况但实际使用中发现两种写法会返回的结果,总会有一些差距虽然差别不大,但让人很是困惑。三、原因当使用join on的时候,如果右表有重复数据就会关联更多的数据,因为它们都符合join on上的条件;而使用left semi join的时候,当join左侧表中的记录在join右侧表上查询到符合条件的记录就会返回,而不会再继续查找右侧表中剩余记录了,所以即使右侧表中有重复,也不会对统计结果有啥影响。 阅读全文
posted @ 2014-01-22 11:31
liutoutou
阅读(1516)
评论(0)
推荐(0)
摘要:
Order by:order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。在hive.mapred.mode=strict模式下,强制必须添加limit限制,这么做的目的是减少reducer数据规模Sort by:sort by不是全局排序,其在数据进入reducer前完成排序。因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1, 则sort by只保证每个reducer的输出有序,不保证全局有序。Distribute by:根据distr 阅读全文
posted @ 2014-01-22 11:12
liutoutou
阅读(547)
评论(0)
推荐(0)

浙公网安备 33010602011771号