一、Reduce Join
Reduce Join工作原理
Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录,然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。
Reduce端的主要工作,在Reduce端以连接字段作为key的分组已经完成,我们只需要在每个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并。
Reduce Join案例实操
id pid amount
1001 01 1
1002 02 2
1003 03 3
1004 01 4
1005 02 5
1006 03 6
pid pname
01 小米
02 华为
03 格力
将商品信息表中数据根据商品pid合并到订单数据表中。
id pname amount
1001 小米 1
1004 小米 4
1002 华为 2
1005 华为 5
1003 格力 3
1006 格力 6
需求分析
通过将关联条件作为Map输出的key,将两表满足Join条件的数据并携带数据所来源的文件信息,发往同一个ReduceTask,在Reduce中进行数据的串联
代码实现
1)创建商品和订合并后的Bean类