首页 > 其他 > 详细

多表连接解题思路

时间:2014-03-23 23:53:48      阅读:659      评论:0      收藏:0      [点我收藏+]
思路:select emp.name,dept.name from emp join dept on emp.deptID = dept.ID
数据源


职员表 emp
name  deptID


张山    1
李斯    1
晓明    1
龙龙    2
呆呆    2 
姗姗    5




部门表 dept
ID    name
1     开发部
2     研发部
3     运营部
4     销售部
5     行政部




期望结果:
张山    开发部
李斯    开发部
晓明    开发部
龙龙    研发部
呆呆    研发部
姗姗    行政部


map执行过程:


以数字作为突破口
若该行记录以数字开头,则从行首开始处理,将数值部分作为key,非数字部分作为value ,分割点是空白
若该行记录以非数字开发,则从行尾开始处理,将数值部分作为key,非数字部分作为value。分隔点是空白


map任务结果:
1    1+张山    
1    1+李斯    
1    1+晓明    
2    1+龙龙    
2    1+呆呆    
5    1+姗姗
1    2+开发部
2    2+研发部
3    2+运营部
4    2+销售部
5    2+行政部 


洗牌结果:
(1,(1+张山,1+李斯,1+晓明,2+开发部 ))   
(2,(1+龙龙,1+呆呆,2+研发部))
(3,(2+运营部))
(4,(2+销售部))
(5,(1+姗姗,2+行政部))


reduce执行过程:
将value中含有1标示符的记录取出第二个元素加入A数组
得到A数组(张山,李斯,晓明)
将value中含有2标示符的记录取出第二个元素加入B数组
得到B数组(开发部)


对AB取 笛卡尔积
单一结果:
(张山,开发部)
(李斯,开发部)
(晓明,开发部)


其他reduce过程(略)
最终结果:
张山    开发部
李斯    开发部
晓明    开发部
龙龙    研发部
呆呆    研发部
姗姗    行政部











多表连接解题思路,布布扣,bubuko.com

多表连接解题思路

原文:http://blog.csdn.net/u013494310/article/details/21889069

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!