gpt4 book ai didi

java - 带有 RDF/XML 文件的 Hadoop MapReduce

转载 作者:可可西里 更新时间:2023-11-01 14:54:37 25 4
gpt4 key购买 nike

所以我有十个不同的文件,每个文件看起来像这样。

<DocID1>    <RDF Document>
<DocID2> <RDF Document>
.
.
.
.
<DocID50000> <RDF Document>

实际上每个文件大约有 56,000 行。每行都有一个文档 ID 和一个 RDF 文档。

我的目标是将每个映射器作为输入键值对传递给每个映射器,并为输出键值对发出多个映射器。在 reduce 步骤中,我会将这些存储到 Hive 表中。

我有几个入门问题,而且我对 RDF/XML 文件完全陌生。

  1. 我应该如何解析文档的每一行以分别传递给每个映射器?

  2. 是否有一种有效的方法来控制映射器的输入大小?

最佳答案

1- 如果您使用的是 TextInputFormat,您将在每个映射器中自动获得 1 行(1 次拆分)作为值。将此行转换为 String 并进行所需的处理。或者,您可以通过使用 StreamXmlRecordReader 来使用 Hadoop Streaming API .您必须提供开始和结束标记,并且夹在开始和标记之间的所有信息都将提供给映射器(在您的情况下为 <DocID1><RDF Document>)。

Usage :

hadoop jar hadoop-streaming.jar -inputreader "StreamXmlRecord,begin=DocID,end=RDF Document" ..... (rest of the command)

2- 为什么需要它?您的目标是将完整的一行提供给映射器。这是您正在使用的 InputFormat 的工作。如果您仍然需要它,您必须为此编写自定义代码,对于这种特殊情况,它会有点棘手。

关于java - 带有 RDF/XML 文件的 Hadoop MapReduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com