reduce的join

reduce端的join

join过程在reduce端进行
join将两个表中相同的id的数据拼接在一起,拼接的过程在reduce端进行 a:1 zs b:1 45
想在reduce端拼接这个数据,保证reduce端能够接受到的数据中a:1 zs 、 b:1 45在一组,相同的关联键的数据被分到一组
map端key:两个表的关联键 reduce端接受的数据相同关联键的两个表中的数据
map端:接触文件的
key:两表的关联键
value:两个表的其他需要的字段,打标记,标识数据来源,不同的表的数据,不同的标记
a:“a”+name
b:“b”+age
reduce端:相同关联建的两个表中的数据 ,将两个表的数据进行拼接,不同表的数据
a:1 zs b:1 45 b:1 38
要求reduce端接受的values的数据能够识别来源的 <azs,b45,b38>

案例:

movies.dat 数据格式为: 2::Jumanji (1995)::Adventure|Children’s|Fantasy
对应字段为:MovieID BigInt, Title String, Genres String
对应字段中文解释:电影ID,电影名字,电影类型

ratings.dat 数据格式为: 1::1193::5::978300760 对应字段为:UserID BigInt,
MovieID BigInt, Rating Double, Timestamped String
对应字段中文解释:用户ID,电影ID,评分,评分时间戳

Mapper源码

package mapper;

import java.io.IOException;

import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.RawComparator;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.mapreduce.MapContext;
import org.apache.hadoop.mapreduce.task.MapContextImpl;

/** 
 * Maps input key/value pairs to a set of intermediate key/value pairs.  
 * 
 * <p>Maps are the individual tasks which transform input records into a 
 * intermediate records. The transformed intermediate records need not be of 
 * the same type as the input records. A given input pair may map to zero or 
 * many output pairs.</p> 
 * 
 * <p>The Hadoop Map-Reduce framework spawns one map task for each 
 * {@link InputSplit} generated by the {@link InputFormat} for the job.
 * <code>Mapper</code> implementations can access the {@link Configuration} for 
 * the job via the {@link JobContext#getConfiguration()}.
 * 
 * <p>The framework first calls 
 * {@link #setup(org
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值