如何将多行文本发送到MapReduce中的键/值,而不是单行

时间:2014-03-24 08:46:02

标签: hadoop mapreduce

我正在学习MapReduce。 我面临一些问题。

我的数据是......(例如。)

<Doc>
<ID> No-001 </ID>
<Value> This is 001 Value. </Value>
</Doc>

<Doc>
<ID> No-002 </ID>
<Value> This is 002 Value. </Value>
</Doc>
...

我需要将上面的文字改为......

This is 001 Value. No-001
This is 002 Value. No-002
...

我想在MapReduce中发送Mapper值之间的多行。关键是什么。我搜索了一些例子,但我不能解决这个问题。

要解决这个问题,我认为我必须处理InputFormat。

请回答问题。

1 个答案:

答案 0 :(得分:1)

您应该将Mahout XMLinputFormat类用于XML文件&#39;解析。 它允许您配置您的驱动程序代码,如下所示:

conf.set("xmlinput.start", "<Doc>");
conf.set("xmlinput.end", "</Doc>");
job.setInputFormatClass(XmlInputFormat.class);

然后在您的映射器中,您可以使用您喜欢的任何解析器处理XML内容。 There is XmlInputFormat类的一个很好的教程。