我试图把一些包含相关顶点信息的文本文件读入giraph:每一行都是
顶点id属性\u 1属性\u 2…..属性\u n
其中每个属性都是一个字符串。
目标是创建一个顶点,其中所有这些属性都是顶点值的一部分。
查找各种输入格式时,我找不到任何现成的内容,因此我假设必须从vertexvalueinputformat派生我的vertex输入类(我有一个单独的边读取器)。
问题是:怎么做?我已经创建了一个包含string[]数组的a 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将是一个数组,但似乎不喜欢它。
有什么线索吗?谢谢
1条答案
按热度按时间wdebmtf21#
如果顶点具有自定义值(在字符串数组中),则需要具有自定义顶点值类和自定义顶点输入格式。以一个非常简单的自定义顶点类为例。这个班有一个
double
价值观int
,和long
: https://gist.github.com/sar-vivek/df09cca17cc3f6b5ac60 注意-必须覆盖readFields()
以及write()
相应地。然后您需要有一个自定义的顶点输入格式。对于上面的vertex类,我稍微修改了内置的json vertex读取器。举个例子-https://gist.github.com/sar-vivek/f39edacec6d9a43c3717 [请注意第68行上顶点的值是如何设置的]。