我正在学习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。
请回答问题。
答案 0 :(得分:1)
您应该将Mahout XMLinputFormat类用于XML文件&#39;解析。 它允许您配置您的驱动程序代码,如下所示:
conf.set("xmlinput.start", "<Doc>");
conf.set("xmlinput.end", "</Doc>");
job.setInputFormatClass(XmlInputFormat.class);
然后在您的映射器中,您可以使用您喜欢的任何解析器处理XML内容。 There is XmlInputFormat类的一个很好的教程。