关系代数 in Hadoop

1、选择,即where子句。
Map阶段过滤条件,输出键值对(record,null),即直接将符合条件的值写在键值上,Reduce阶段不做任何事,最后直接将Map的结果输出。

2、投影,即选择某几列的值
Map阶段以每条记录在几个属性上的值为键,键值为空,即((a1,a2,a3),null),Reduce阶段仅仅将Map的结果输出。

3、交运算 (R^T)
Map:
对于两张表R和T的每一条记录都以(r,1)的键值对输出。
Reduce:
汇总Map输出的结果,若有(r,2),则该条记录必为一个交集。

这里要保证相同记录发送到同一个Reduce节点,所以重写hashcode使相同对象的hashcode一定相同。

4、差运算 (R-T)
Map:
对于R和T两张表,每一条记录仪键值对(r,R)或(r,T)输出,即键值为记录,值为表名。
Reduce:
检查每一条记录r,若只有R没有T,则将该记录输出。
保证相同记录发送到同一个Reduce节点。

5、自然连接
Map:
对于R和T两张表,以id为键,其余属性值为值,例如,对R表,输出(1,(R,李志,20,91)),对T表,输出(1,(T,女,165))。
Reduce:
将同一键中所有的值根据它们的来源(R和T),分为两组,做笛卡尔积,然后将结果输出,例如,(1,张小雅,20,91,女,165)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值