-1

我有一个包含几个部分的文本文档,每个部分都有标题和正文。这需要通过某些标准过滤并删除其中的所有垃圾字符。在 map reduce 中处理此文档时存在问题,因为行的顺序在 mapper 输出中变得混乱。因此,我引入了一个自定义数据类型 linenumValuetuple 并为每一行分配了一个行号,因为它与值中的文本一起读取,以便它按减速器中的行号和键作为标题 ID 进行排序。但问题是每个部分都被不同的映射器分割,单个部分得到不同的标题 ID。如何将单个部分作为一个拆分,以便我可以获得所有行的相同标题 ID 并以与输入相同的顺序在输出中对其进行排序???

4

1 回答 1

2

您必须创建自己的 InputFormat 和 RecordReader。更多信息可以在这里找到和一个 雅虎教程。问题是跨越多个块大小的文档会被拆分,并且每个拆分都会转到不同的映射器。有一些可用的输入格式,例如 XMLInputFormat。如果您可以将输入视为键值格式,您还可以将其预处理为 SequenceFileFormat,我认为这是理想的。

于 2013-10-22T13:03:47.067 回答