Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在<&燃气轮机;在爪哇? 公共静态类映射扩展映射器{_Java_Hadoop - Fatal编程技术网

Java 在<&燃气轮机;在爪哇? 公共静态类映射扩展映射器{

Java 在<&燃气轮机;在爪哇? 公共静态类映射扩展映射器{,java,hadoop,Java,Hadoop,我多年来第一次用Java开发。我正在Hadoop中实现一些map reduce方法。有人能解释一下类定义中的的要点吗?它到底在做什么 public static class Map extends Mapper<Text, Text, Text, Text> { 公共静态类TokenizerMapper 扩展映射器{ 私有最终静态IntWritable one=新的IntWritable(1); 私有文本字=新文本(); 公共无效映射(对象键、文本值、上下文 )抛出IOExcept

我多年来第一次用Java开发。我正在Hadoop中实现一些map reduce方法。有人能解释一下类定义中的
的要点吗?它到底在做什么

public static class Map extends Mapper<Text, Text, Text, Text> {
公共静态类TokenizerMapper
扩展映射器{
私有最终静态IntWritable one=新的IntWritable(1);
私有文本字=新文本();
公共无效映射(对象键、文本值、上下文
)抛出IOException、InterruptedException{
StringTokenizer itr=新的StringTokenizer(value.toString());
而(itr.hasMoreTokens()){
set(itr.nextToken());
上下文。写(单词,一);
}
}
}
提供了一个非常简洁的分类

  public static class TokenizerMapper
       extends Mapper<Object, Text, Text, IntWritable>{

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

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }
公共类映射器
以你为例

  • KEYIN
    对象
  • VALUEIN
    Text
  • KEYOUT
    Text
  • VALUEOUT
    intwriteable
我不精通Hadoop,但如果我不得不冒险猜测,您可以接受
Object
类型的键、
Text
类型的值,并输出
Text
类型的键和
IntWritable
类型的值

对于由
绑定的类型也是如此,除了所有内容(键和值)都是
Text
,提供了一个非常简洁的分类

  public static class TokenizerMapper
       extends Mapper<Object, Text, Text, IntWritable>{

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

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }
公共类映射器
以你为例

  • KEYIN
    对象
  • VALUEIN
    Text
  • KEYOUT
    Text
  • VALUEOUT
    intwriteable
我不精通Hadoop,但如果我不得不冒险猜测,您可以接受
Object
类型的键、
Text
类型的值,并输出
Text
类型的键和
IntWritable
类型的值


对于由
绑定的类型也是如此,除了所有内容(键和值)都是
Text

看起来像是转换为
Text
类型的泛型。但是如果您可以共享
映射器
实现,那就太好了。查看它也可以提供详细信息。Map也接受文本字符串输入并输出文本作为输出,而reducer将文本作为输入(从映射阶段获得)从reducer输出文本。我看到我们扩展了mapper,但有一个函数接受实际类型,如上图所示。实际扮演的角色是什么。这在Java中被视为一个参数吗?您会注意到,也有括号表示它们是泛型类型。这就像“填补空白”其他方法应该具有哪些类型。如果您查看
Mapper
类中的方法,每个泛型类型都有不同的角色。泛型是在Java 1.5中引入的。如果您上次使用Java之前,这将解释您为什么不认识它们。请参阅of以获得温和的介绍,Angelika Langer的所有介绍rifying edge cases.似乎是一个转换为
文本
类型的泛型。但如果您可以共享
映射器
实现,那就太好了。查看它也可能会为您提供详细信息。Map接受文本字符串作为输入,并将文本作为输出,而reducer则将文本作为输入(从Map阶段获得)从reducer输出文本。我看到我们扩展了mapper,但有一个函数接受实际类型,如上图所示。实际扮演的角色是什么。这在Java中被视为一个参数吗?您会注意到,也有括号表示它们是泛型类型。这就像“填补空白”其他方法应该具有哪些类型。如果您查看
Mapper
类中的方法,每个泛型类型都有不同的角色。泛型是在Java 1.5中引入的。如果您上次使用Java之前,这将解释您为什么不认识它们。请参阅of以获得温和的介绍,Angelika Langer的所有介绍边缘裂痕病例。