Apache Giraph中具有复杂值的顶点

时间:2014-07-17 10:22:01

标签: hadoop graph giraph

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

vertex_id attribute_1 attribute_2 ..... attribute_n

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

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

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

问题是:怎么样?我创建了一个包含String []数组的Value类,但是如何将其交给Giraph / Hadoop?这是一行读者:

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

受保护的抽象V getValue(org.apache.hadoop.io.Text行)

我的想法是,V将是 ArrayWritable ,但似乎不喜欢它。

有任何线索吗?感谢

1 个答案:

答案 0 :(得分:2)

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

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