hadoopMap器参数解释

vptzau2j  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(344)

这个问题在这里已经有了答案

hadoopMap器中对象类型的键(1个答案)
5年前关门了。
我是hadoop新手,对mapper参数感到困惑。
以众所周知的wordcount为例:

class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
  private Text outputKey;
  private IntWritable outputVal;

  @Override
  public void setup(Context context) {
    outputKey = new Text();
    outputVal = new IntWritable(1);
  }

  @Override
  public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
    StringTokenizer stk = new StringTokenizer(value.toString());
    while(stk.hasMoreTokens()) {
      outputKey.set(stk.nextToken());
      context.write(outputKey, outputVal);
    }
  }
}

看到了吗 map 函数,参数为 Object key , Text value 以及 Context context ,我很困惑 Object key 看起来(你看, key 从不用于 Map 函数)。
因为输入文件格式如下:

Deer
Beer
Bear
Beer
Deer
Deer
Bear
...

我知道每一行的价值都是一样的 Deer , Beer ,等等。它们是逐行处理的。
但钥匙看起来怎么样?如何决定应该使用哪种数据类型的键?

doinxwow

doinxwow1#

这里的一切都取决于你自己 InputFormat 使用的类。它解析输入数据源并提供(键、值)对。不同的输入格式实现可以为您提供不同的流,即使具有相同的输入源。
下面是一篇演示方法的文章:
https://hadoopi.wordpress.com/2013/05/31/custom-recordreader-processing-string-pattern-delimited-records/
这里的主要驱动力是 RecordReader .

相关问题