开发者社区 问答 正文

怎么使用mapReduce实现两个表的join?

怎么使用mapReduce实现两个表的join?

展开
收起
芯在这 2021-12-06 22:09:34 538 分享 版权
1 条回答
写回答
取消 提交回答
  • 1)reduce side join : 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag),比如:tag=0 表示来自文件File1,tag=2 表示来自文件File2。

    2)map side join : Map side join 是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个map task 内存中存在一份(比如存放到hash table 中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table 中查找是否有相同的key 的记录,如果有,则连接后输出即可。

    2021-12-06 22:09:49
    赞同 展开评论