多表连接解题思路
来源:互联网 发布:扎克拉文体测数据 编辑:程序博客网 时间:2024/06/03 21:22
思路: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过程(略)
最终结果:
张山 开发部
李斯 开发部
晓明 开发部
龙龙 研发部
呆呆 研发部
姗姗 行政部
数据源
职员表 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过程(略)
最终结果:
张山 开发部
李斯 开发部
晓明 开发部
龙龙 研发部
呆呆 研发部
姗姗 行政部
0 0
- 多表连接解题思路
- 单表连接解题思路
- 解题思路
- 解题思路
- 解题思路
- 解题思路
- 解题思路
- 链表问题及解题思路
- 话说解题思路
- 话说解题思路
- 话说解题思路
- POJ1298解题思路
- 二进制问题解题思路
- SSD6 exercise1 解题思路
- zoj 2971 解题思路
- hdu 2147解题思路
- acm题目解题思路
- ISBN解题思路
- 深入Java单例模式
- Hadoop C++单词统计
- sql 异常处理 例子
- 电子商务商业模式实训及思考 第六问
- ZendStudio调试功能使用说明
- 多表连接解题思路
- 设计模式__工厂模式
- about httpt.conf
- Parcelable vs Serializable
- C#线程同步(2)- 临界区&Monitor
- 图书管理系统开发--问题解决
- Oracle操作及卸载
- TOJ 3886 Simplifying the Farm / 最小生成树+计数
- 倒排索引解题思路