六个案例强化MR程序的开发和理解之 多表关联

本文介绍了一种处理多表关联的方法,通过将工厂表和地址表进行连接,挖掘出工厂名和地址名的对应关系,输出“工厂名——地址名”表。采用与单表关联相似的处理方式,通过map和reduce阶段实现数据的连接。


多表关联:和单表关联类似,也是通过对原始数据进行一定的处理, 从其中挖掘出目标信息。

问题描述

输入是两个文件,一个代表工厂表,包含工厂名列和地址编号列;另一个代表地址表包地址名列和地址编号列。要求从输入数据中找出工厂名和地址名的对应关系,输出“工厂名——地址名”表。

输入文件:

输出文件:


设计思路


多表关联和单表关联相似,都类似于数据库中的自然连接。相比单表关联,多表关联的左右表和连接列更加清楚。 所以可以采用和单表关联的相同的处理方式, map 识别出输入的行属于哪个表之后,对其进行分割,将连接的列值保存在 key 中, 另一列和左右表标识保存在 value 中然后输出。reduce 拿到连接结果之后,解析 value 内容,根据标志将左右表内容分开存放,然后求笛卡尔积,最后直接输出。

这个实例的具体分析参考昨天发送的单表关联实例。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值