hadoop编写Mapper类

简介: 【7月更文挑战第10天】

image.png
在Hadoop MapReduce中,Mapper类主要用于处理输入数据并将其转换为中间键值对。下面是一个基本的Mapper类示例,使用Java编写,该示例将文本文件中的每一行作为输入,并将每个单词映射为其出现次数(1)。

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
   
   

  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(LongWritable key, Text value, Context context) 
          throws IOException, InterruptedException {
   
   
        String line = value.toString();
        StringTokenizer tokenizer = new StringTokenizer(line);
        while (tokenizer.hasMoreTokens()) {
   
   
            word.set(tokenizer.nextToken());
            context.write(word, one);
        }
    }
}

在这个例子中:

  • WordCountMapper 类扩展了 Mapper 类。
  • map() 方法是主要的映射逻辑,它接收一个键(行号,类型为 LongWritable),一个值(行内容,类型为 Text),以及一个 Context 对象来写入中间结果。
  • 使用 StringTokenizer 将每行分割成单词。
  • 每个单词被设置为 word 对象,然后与 one 对象一起写入上下文,表示该单词出现一次。

注意,你需要根据你的具体需求来调整这个示例,例如更改输入和输出类型,或者修改映射逻辑。

目录
相关文章
|
2月前
|
存储 分布式计算 Hadoop
hadoop编写Reducer类
【7月更文挑战第10天】
19 3
|
2月前
|
分布式计算 Hadoop Java
Hadoop编写Combiner类
【7月更文挑战第7天】
15 3
|
9月前
|
分布式计算 Hadoop 大数据
|
存储 分布式计算 自然语言处理
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
|
分布式计算 Java Hadoop
|
分布式计算 Java Hadoop
|
1月前
|
存储 分布式计算 Hadoop
|
17天前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
59 0

相关实验场景

更多