【问题标题】:Vertices with complex values in Apache GiraphApache Giraph 中具有复杂值的顶点
【发布时间】:2014-07-17 10:22:00
【问题描述】:

我正在尝试将一些包含相关顶点信息的文本文件读入 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

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

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

有什么线索吗?谢谢

【问题讨论】:

    标签: hadoop graph giraph


    【解决方案1】:

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

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

    【讨论】:

    • 您提供的链接已无法访问,请用新链接更新答案,也请避免通过链接回答
    • @sarvivek 你能用实际代码更新你的答案吗?没有链接?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多