生成的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还是什么?
我的错,孤立的节点(在我的设计中不拥有任何边缘)导致了这种现象。