当key不在第一行时如何使用mapreduce:Hadoop Mapreduce

时间:2014-05-29 08:45:10

标签: hadoop mapreduce

任何人都可以在hadoop中使用MapReduce来解决下面的问题。

假设我有一个具有以下结构的文件

  • 记录1 - value1
  • 记录2 - value2
  • 记录3 - value3
  • 记录4 -value4
  • 记录5 - value5
  • 记录6 - value6
  • 记录7 - key1
  • 记录8 - value8
  • 记录9 - value9
  • 记录10 - value10
  • 记录11 - value11
  • 记录12 - value12
  • 记录13 - value13
  • 记录14 - key2

我希望输出是键和值的串联字符串,如下所示 输出

  • Key1Value1 Value2 Value3 Value4 Value5 Value6
  • Key2 Value8 Value9Value10 Value11 Value12 Value13

1 个答案:

答案 0 :(得分:1)

是的,您可以通过多种方式解决问题,具体取决于数据和文件的结构和大小,也许还有一些信息,我们可以为您提供更准确的答案:

  1. 如果同一文件中包含相同的字段,请使用 CombineFileInputFormat 类。
  2. 防止拆分子类 FileInputFormat 并覆盖 isSplittable()方法。
  3. 您还可以检查类 KeyValueTextInputFormat ,它允许您使用与行偏移不同的键作为键逐行读取文件。您可以通过 mapreduce.input.keyvaluelinerecordreader.key.value.separator

    指定分隔符(逗号)

    我希望它有所帮助