先看一下要处理的数据类型
19392963501,17816115082,2018-09-18 16:19:44,1431
14081946321,13094566759,2018-05-23 09:34:27,0610
13415701165,18939575060,2018-11-23 21:33:23,1031
15590483587,16303009156,2018-08-02 07:38:00,0487
15539613975,17882324598,2018-10-19 09:08:15,0948
数据字段分别为主叫号码,被叫号码,通话时间,通话时长
我们的需求是:将数据按号码的通话日期的年,月,日分别计算时长和次数,用一个MapReduce实现,在这里我处理的时候是忽略被叫号码的通话时长,仅以主叫号码为例。
代码部分
package mapReducePhone;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Partitioner;
import org.apache.hadoop.mapreduce.Reducer;