输入数据如下:以\t分隔
<span style="font-size:18px;">0-3岁育儿百科 书 23
0-5v液位传感器 5
0-5轴承 2
0-6个月奶粉 23
0-6个月奶粉c2c报告 23
0-6个月奶粉在线购物排名 23
0-6个月奶粉市场前景 23
0-6个月配方奶粉 23
0.001g电子天平 5
0.01t化铝炉 2
0.01吨熔铝合金炉 2
0.03吨化镁炉 25
0.03吨电磁炉 11
</span>
其中左侧是搜索词,右侧是类别,可看成是数据库中的纵表,现需要将输入转成横表,即 类名\t语句1\t语句2...,这样的格式。
MapReduce最适合做这样的事情了。因为经常用到,记录一下。Hive表中的数据要转成横表的时候,单独写个MR来处理就很方便了。
<span style="font-size:18px;">package seg;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
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.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop