所以我有十个不同的文件,每个文件都是这样的。
<DocID1> <RDF Document>
<DocID2> <RDF Document>
.
.
.
.
<DocID50000> <RDF Document>
实际上每个文件大约有56000行。每行中都有一个文档id和一个rdf文档。
我的目标是作为输入键值对传入每个Map器,并为输出键值对发出多个。在reduce步骤中,我将把这些存储到一个配置单元表中。
我有几个问题要问,而且我对rdf/xml文件是完全陌生的。
我应该如何解析文档的每一行以分别传递给每个Map器?
有没有一种有效的方法来控制Map器输入的大小?
1条答案
按热度按时间ulydmbyx1#
1-如果使用textinputformat,则会在每个Map器中自动获取1行(1个分割)作为值。将此行转换为字符串并执行所需的处理。或者,您可以通过使用
StreamXmlRecordReader
. 您必须提供开始和结束标记,并且夹在开始和标记之间的所有信息都将被提供给Map器(在您的情况下)<DocID1>
以及<RDF Document>
).2-你为什么需要这个?您的目标是将一条完整的线提供给Map器。这是你正在使用的输入格式的工作。如果您仍然需要它,您必须为此编写自定义代码,对于这种特殊情况,这将有点棘手。