Hadoop中的Join示例
1、案例表和数据取自ORACLE的scott/tiger
?
?? 
?
本次实现的查询:
??? 
?
2、处理join的思路:
?????? 将Join key 当作map的输出key, 也就是reduce的输入key ,? 这样只要join的key相同,shuffle过后,就会进入到同一个reduce 的key - value list 中去。需要为join的2张表设计一个通用的一个bean.? 并且bean中加一个flag的标志属性,这样可以根据flag来区分是哪张表的数据。reduce 阶段根据flag来判断是EMP表还是DEPT表就很容易了 。而join的真正处理是在reduce阶段。?
?
3、例子:
?
??? 存储数据的bean? (由于数据要在网络上传输必须序列化,hadoop处理的时候需要分组和排序,所以要实现WritableComparable接口):
?
??
?
Mapper类:
?
?
?
?验证下处理的结果集:
?
相比硬编码,hive一条SQL可以搞定,呵呵,所以这种低效的硬编码旨在帮助理解,无实际用途。
1 楼 xm_king 2011-08-18 这个可以使用MapReduce的Join,利用DataJoinMapperBase、DataJoinReducerBase、TaggedMapOutput就可以解决楼主的问题了。
