java mapreduce 例子_MapReduce案例

本文介绍了一个使用Hadoop MapReduce框架实现的简单单词统计应用。该应用通过自定义Mapper类对输入数据进行分词处理,并统计每个单词出现的次数。此示例展示了如何利用IKAnalyzer进行中文分词,以及如何将处理后的单词和对应的文档ID组合成键值对输出。
摘要由CSDN通过智能技术生成

package first;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

import org.wltea.analyzer.core.IKSegmenter;

import org.wltea.analyzer.core.Lexeme;

import java.io.IOException;

import java.io.StringReader;

public class FirstMap extends Mapper {

private Text t = new Text();

private IntWritable intWritable = new IntWritable(1);

//3823890210294392今天我约了豆浆,油条

//word_id count

@Override

protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String[] split = value.toString().trim().split("\t");

if (split.length > 2) {

String id = split[0].trim();

String word = split[1].trim();

//对word 进行分词

StringReader sr = new StringReader(word);

IKSegmenter ikSegmenter = new IKSegmenter(sr, true);

Lexeme text = null;

while ((text = ikSegmenter.next()) != null) {

String w = text.getLexemeText();

//word_id count

t.set(w + "_" + id);

context.write(t,new IntWritable(1));

}

}

//输出总行数

context.write(new Text("count"), new IntWritable(1));

}

}

单词统计 cord count

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值