公司设计网站有哪些,辽宁省网站备案注销,中石油第七建设公司网站,山西网站建设适合v加xtdseo大数据学习
#x1f525;系列专栏#xff1a; #x1f451;哲学语录: 承认自己的无知#xff0c;乃是开启智慧的大门 #x1f496;如果觉得博主的文章还不错的话#xff0c;请点赞#x1f44d;收藏⭐️留言#x1f4dd;支持一下博主哦#x…大数据学习
系列专栏 哲学语录: 承认自己的无知乃是开启智慧的大门 如果觉得博主的文章还不错的话请点赞收藏⭐️留言支持一下博主哦 Join算法概述
Hive拥有多种join算法包括Common JoinMap JoinBucket Map JoinSort Merge Buckt Map Join等下面对每种join算法做简要说明
1Common Join
Common Join是Hive中最稳定的join算法其通过一个MapReduce Job完成一个join操作。Map端负责读取join操作所需表的数据并按照关联字段进行分区通过Shuffle将其发送到Reduce端相同key的数据在Reduce端完成最终的Join操作。如下图所示
需要注意的是sql语句中的join操作和执行计划中的Common Join任务并非一对一的关系一个sql语句中的相邻的且关联字段相同的多个join操作可以合并为一个Common Join任务。 例如
hive (default)selecta.val,b.val,c.valfrom ajoin b on (a.key b.key1)join c on (c.key b.key1)
上述sql语句中两个join操作的关联字段均为b表的key1字段则该语句中的两个join操作可由一个Common Join任务实现也就是可通过一个Map Reduce任务实现。
hive (default)selecta.val,b.val,c.valfrom ajoin b on (a.key b.key1)join c on (c.key b.key2)
上述sql语句中的两个join操作关联字段各不相同则该语句的两个join操作需要各自通过一个Common Join任务实现也就是通过两个Map Reduce任务实现。