graph.triplets 似乎没有按预期工作

问题描述 投票:0回答:1

生成的graph是通过迭代过程生成的。看起来是这样的↓

graph = graph.outerJoinVertices(updatedNode2vdata)((vid, old, newOpt) => newOpt.getOrElse(old))
    //debug graph: Graph[VD, ED]

    val old_nodes = graph.vertices.collect()
    val old_triplets = graph.triplets.collect()

    val old_comms_set = old_nodes.map({ case (vid, vdata) => {
      vdata.community
    }
    }).toSet

    val test_comms_set = old_triplets.flatMap( et => {
      Seq(et.dstAttr.community, et.srcAttr.community)

    }
    ).toSet

    val test_result = old_comms_set.equals(test_comms_set)



    println("$$$$$$$$$$$$$$$$$$$$$$$$$$")
    println(test_result)
    println("$$$$$$$$$$$$$$$$$$$$$$$$$$")
    //debug

预计 test_result 始终为 true。然而,在第一个迭代步骤之后,它是true。在后续的迭代步骤中,它是false

如下图所示,连尺寸都不对。 在此输入图片描述

这太奇怪了。是bug还是什么?

apache-spark spark-graphx
1个回答
0
投票

我的错,孤立的节点(在我的设计中不拥有任何边缘)导致了这种现象。

© www.soinside.com 2019 - 2024. All rights reserved.