Java大数据开发(三)Hadoop(21)-KeyValueTextInputFormat案例

导读:上一节咱们讲解了FileInputFormat实现类有不少,本节讲解实现类 KeyValueTextInputFormat的案例操做


KeyValueTextInputFormat使用案例java


1.需求swift


统计输入文件中每一行的第一个单词相同的行数。微信


(1)  输入数据app


hadoop ni haoxiaoming hive helloworldhadoop ni haoxiaoming hive helloworld


(2)  指望结果数据ide


hadoop 2xiaoming 2


2需求分析
oop



3代码编写 大数据


(1)  编写Mapper类spa


public class KVTextMapper extends Mapper<Text, Text, Text, LongWritable>{
// 1 设置value LongWritable v = new LongWritable(1);
@Override protected void map(Text key, Text value, Context context)      throws IOException, InterruptedException { // 2 写出 context.write(key, v); }}


(2)  编写Reducer类.net


public class KVTextReducer extends Reducer<Text, LongWritable, Text, LongWritable>{
LongWritable v = new LongWritable();
@Override protected void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {
long sum = 0L;
// 1 汇总统计 for (LongWritable value : values) { sum += value.get();         }             v.set(sum);   // 2 输出 context.write(key, v); }}


(3)  编写Driver类code


public class KVTextDriver {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = new Configuration(); // 设置切割符 conf.set(KeyValueLineRecordReader.KEY_VALUE_SEPERATOR, " "); // 1 获取job对象 Job job = Job.getInstance(conf);
// 2 设置jar包位置,关联mapper和reducer job.setJarByClass(KVTextDriver.class); job.setMapperClass(KVTextMapper.class);job.setReducerClass(KVTextReducer.class);
// 3 设置map输出kv类型 job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(LongWritable.class);
// 4 设置最终输出kv类型 job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.class);
// 5 设置输入输出数据路径 FileInputFormat.setInputPaths(job, new Path(args[0]));
// 设置输入格式 job.setInputFormatClass(KeyValueTextInputFormat.class);
// 6 设置输出数据路径 FileOutputFormat.setOutputPath(job, new Path(args[1]));
// 7 提交job job.waitForCompletion(true); }}


关注「跟我一块儿学大数据」

跟我一块儿学大数据

本文分享自微信公众号 - 跟我一块儿学大数据(java_big_data)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索