1

我正在尝试将一些包含相关顶点信息的文本文件读入 Giraph:每一行都是

vertex_id 属性_1 属性_2 .....attribute_n

其中每个属性都是一个字符串。

目标是创建一个顶点,其中所有这些属性都是顶点值的一部分。

查找各种输入格式我找不到任何开箱即用的东西,所以我假设我必须从VertexValueInputFormat派生我的顶点输入类(我有一个单独的边缘阅读器)。

问题是:如何?我创建了一个包含 String[] 数组的 Value 类,但是如何将它交给 Giraph/Hadoop?这是单行的阅读器:

https://giraph.apache.org/giraph-core/apidocs/org/apache/giraph/io/formats/TextVertexValueInputFormat.TextVertexValueReaderFromEachLine.html

protected abstract V getValue(org.apache.hadoop.io.Text line)

当时的想法是, V 将是一个ArrayWritable,但似乎不喜欢它。

有什么线索吗?谢谢

4

1 回答 1

2

如果您的顶点具有自定义值(在您的情况下为字符串数组),那么您需要具有自定义顶点值类和自定义顶点输入格式。例如,看一个非常简单的自定义顶点类。此类有一个double值、一个int和一个longhttps ://gist.github.com/sar-vivek/df09cca17cc3f6b5ac60 注意 - 您必须相应地覆盖readFields()和覆盖write()

然后你需要有一个自定义的顶点输入格式。对于上面的顶点类,我稍微修改了内置的 json 顶点阅读器。这是示例 - https://gist.github.com/sar-vivek/f39edacec6d9a43c3717 [注意如何在第 68 行设置顶点的值]。

于 2014-07-25T17:13:02.800 回答