`

Hadoop MapReduce表关联

阅读更多

假设有两个文件,分别对应要关联的两张表(部门表,员工表)

部门表文件格式如下:
部门ID    部门名称
1            技术部
2            市场部

员工表文件格式如下:
部门ID    员工ID    员工姓名
1             1             小明
1             2             张三
2             3             李四
2             4             王五

我们希望根据上面两个文件找出部门和员工的对应关系:
部门名称    员工姓名
技术部        小明
技术部        张三
市场部        李四
市场部        王五

如果是关系型数据库,很容易通过表关联查询出上面的结果,通过Hadoop MapReduce也能实现同样的表关联。

思路:
关系型数据库是通过左右表的连接来实现两个表的关联,考虑到MapReduce的shuffle过程会将相同key值的value放在一起,
我们可以将左右表中待连接的列作为key值,左表和右表其余的数据放到value中,那么在reduce阶段,我们就能对values中的数据进行处理,找到我们需要的关联数据。

具体过程如下:
假设部门表作为左表,员工表作为右表,同时用一个标志位标识是左表还是右表(1代表左表,2代表右表)。

Map阶段:
输出的key是用于连接的列(部门ID),value是“左右表标识-其余列值”
对部门表的map操作将输出以下key-value对:
1:1-技术部
2:1-市场部
对员工表的map操作将输出以下key-value对:
1:2-小明
1:2-张三
2:2-李四
2:2-王五

Shuffle:
shuffle过程会将相同key值的value放在一起。
对上面map阶段输出的key-value对shuffle之后将输出以下key-values作为reduce的输入。

1:{1-技术部,2-小明,2-张三}
2:{1-市场部,2-李四,2-王五}

Reduce阶段:
对每一个key对应的values进行如下处理:
如果是左表(1),则将value归到部门数组或列表,如果是右表(2),则将value归到员工,然后部门和员工求笛卡尔积,输出到结果集中:
对于key(1),部门有技术部,员工有小明和张三,则输出如下结果:
技术部        小明
技术部        张三

同理,对于key(2),会输出如下结果:
市场部        李四
市场部        王五

那么最终总的输出结果如下:
部门名称    员工姓名
技术部        小明
技术部        张三
市场部        李四
市场部        王五

 

分享到:
评论

相关推荐

    hadoop mapreduce多表关联join多个job相互依赖传递参数

    mapreduce多表关联join多个job相互依赖传递参数

    SEARUM:Hadoop MapReduce 关联规则挖掘实现

    海尔姆关联规则挖掘技术的 Hadoop MapReduce 实现。描述并行 FP-Growth 和关联规则挖掘 MapReduce 实现。 它运行 PFPGrowth 的每个阶段,如论文中所述,如论文中所述,针对 SEARUM 进行修改并与 SEARUM 集成 。 注意...

    Hadoop开发者第一期入门专刊

    目录:1 Hadoop 介绍 2 Hadoop 在国内应用情况 3 Hadoop 源代码eclipse 编译教程 7 在Windows 上安装Hadoop 教程 13 在Linux 上安装Hadoop...59 表关联在MapReduce 上的实现 63 Hadoop 计算平台和Hadoop 数据仓库的区别

    论文研究-基于MapReduce计算模型的并行关联规则挖掘算法研究综述.pdf

    随着数据的爆炸式增长,传统的算法已不能适应大数据挖掘的需要,需要...对已有的基于MapReduce计算模型的并行关联规则挖掘算法进行了分类和综述,对其各自的优缺点和适用范围进行了总结,并对下一步的研究进行了展望。

    Hadoop实战(陆嘉恒)

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop实战-陆嘉恒

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 共64页.pdf

    6、一对多的表关联在mapreduce中的应用(续) .................. - 26 - 7、InputSplit文件格式分析................................. - 32 - 8、短评:HDFS、MapReduce和HBase三者相辅相成、各有长处 ..... - 34 - ...

    Hadoop实战

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    hadoop 2.2.2 已编译源码

    java 关联hadoop源码 查看底层实现,mapReduce实现 HDFS实现

    《Hadoop实战》试读本(作者:陆嘉恒)

    第4-7章深入地讲解了MapReduce计算模型、MapReduce应用的开发方法、MapReduce的工作机制,同时还列出了多个MapReduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop实战丛书

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    MapReduce模型--自定义数据类型

    通过自定义数据类型,可以使用Hadoop处理单表数据查询以及多表相互关联的应用场景。

    论文研究-基于Hadoop的多特征协同过滤算法研究.pdf

    根据分析结果形成用户最近邻居集合,通过Hadoop中的MapReduce模型构建预测评分矩阵,最后基于邻居集和用户灰色关联度形成推荐列表。实验结果表明,该算法提高了推荐的有效性和准确度,且能有效支持较大数据集。

    Stock-Volatility-Hadoop-MapReduce

    Reducer-1因此,在映射过程之后,Reducer将获得文件名作为键,并将与该相似键相关联的所有值作为可迭代值。 Reducer -1基本上将计算股票的每个月的收益率,并产生包含关键字作为股票名称和包含一个月的收益率的单个...

    MapReduce的模式、算法和用例

    所有描述性的文字和代码都使用了标准hadoop的MapReduce模型,包括Mappers,Reduces,Combiners,Partitioners,和sorting。如下图所示。问题陈述:有许多文档,每个文档都有一些字段组成。需要计算出每个字段在所有文档中...

    大数据技术原理与应用实验

    实验十三 MapReduce单表关联 103 第五章 统一资源管理系统YARN 114 实验十四 YARN命令基础 114 实验十五 YARN命令进阶 118 第六章 分布式列族数据库HBase 123 实验十六 HBase安装部署 123 .........

    hadoop相关知识习题

    ①两者不是强关联关系,没有MapReduce,HBase可以正常运行②MapReduce可以直接访问HBase 7.下面哪些选项正确描述了HBase的特性?A 高可靠性B 高性能C 面向列D可伸缩 8.与Zookeeper类似的框架是?Chubby 9.下面与HDFS...

    Apache Hadoop---Pig.docx

    通过PigLatin,数据工程师可以将复杂且相互关联的数据分析任务编码为Pig操作上的数据流脚本,通过将该脚本转换为MapReduce任务链,在Hadoop上执行。和Hive一样,Pig降低了对大型数据集进行分析和评估的门槛。

    MapReduce编程实战.docx

    文档包含求平均成绩的MapReduce代码 3、平均成绩 3.1实例描述 3.2设计思路 3.3程序代码 4、单表关联 4.1实例描述 4.2设计思路 4.3程序代码

Global site tag (gtag.js) - Google Analytics