MapReduce算法例析——连接算法

这是中国大学MOOC大数据算法的课程笔记

这一讲是MapReduce一些相对复杂的应用


本讲分为两个部分:

连接(Join)算法

图算法


图算法在后一篇文章中讲述。


连接算法


笛卡尔积定义如下


在笛卡尔积上添加约束条件后的运算就是连接操作。如Theta连接和自然连接。连接在数据库中是比较昂贵的操作。



下面是Hash Join用MapReduce的实现:



对于两个表分别进行上述MapReduce过程操作:

将原表分块,mapper按Hash值将其划分为不同的Hash桶,然后reducer根据不同的Hash值将桶聚合。

这样两个表的第一个reducer生成的结果对应相同的Hash桶,再把它们放到同一个merger中进行hash join。


使用MapReduce处理多个连接的操作,h取1到m的范围数,Reducer取连接操作数的平方。


另一个例子是Hive中的repartition join

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值