未使用Hadoop映射函数的"key"参数



我一直在努力学习hadoop。在我看到的示例中(例如单词计数示例(,根本没有使用map函数的关键参数。map函数只使用对的值部分。因此,关键参数似乎是不必要的,但它不应该是。我在这里缺少了什么?你能给我举一个使用关键参数的地图函数的例子吗?

感谢

要了解key的使用,您需要了解Hadoop中可用的各种输入格式。

  1. 文本输入格式-纯文本文件的InputFormat。文件被分成几行。换行或回车用于表示换行结束。键是文件中的位置,值是文本行。。

  2. NLineInputFormat-NLineInputFormat,将N行输入拆分为一个拆分。在许多"令人愉快"的并行应用程序中,每个进程/映射器处理相同的输入文件,但计算由不同的参数控制。(称为"参数扫描"(。实现这一点的一种方法是指定一组参数(每行一组(作为控制文件中的输入(这是map reduce应用程序的输入路径,其中作为输入数据集是通过JobConf中的配置变量指定的(。NLineInputFormat可用于此类应用程序,它拆分输入文件,默认情况下,一行作为值提供给一个map任务,关键是偏移。即(k,v(是(LongWritable,Text(。位置提示将覆盖整个映射集群。

  3. KeyValue文本输入格式-纯文本文件的InputFormat。文件被分成几行。换行或回车用于表示换行结束。E每行由一个分隔符字节划分为键和值部分。如果不存在这样的字节,键将是整行,值将为空。

  4. 序列文件为二进制输入格式-InputFormat读取二进制(原始(格式的SequenceFiles中的键和值。

  5. 序列文件为文本输入格式-该类类似于SequenceFileInputFormat,不同之处在于它生成用于转换输入键和值的SequenceFileAsTextRecordReader通过调用toString((方法将其转换为String形式。

在wordcount示例中:因为我们想统计文件中每个单词的出现次数。我们使用了以下方法:

在映射器-

Key是文本文件的offset

文本文件中的Value-Line

例如。file.txt

Hi I love Hadoop.
I code in Java. 

此处

Key - 0 ,  value - Hi I love Hadoop.
Key - 17 , value - I code in Java.
(key - 17 is offset from start of file.)

基本上,键的偏移量是默认的,我们不需要它,尤其是在Wordcount中。

现在,稍后的逻辑是,我想你会得到这里和更多可用的链接。

以防万一:

Reducer

Key就是WordValue是1,这是它的count.

相关内容

  • 没有找到相关文章

最新更新