希望有人可以提供帮助。
我正在尝试编写一个程序,该程序需要对连接到 graphx 网络中每个节点的每个边 ID 执行一个函数。
为此,我想遍历每个节点并识别与其连接的所有边,然后我想用函数遍历每个边。在 foreach 循环中进行任何类型的子图或过滤时,我的问题似乎出现了。
因此,例如下面的代码应该输出连接到节点的每条边的 id
graph.vertices.foreach {
network =>
val KeyVert = network._1
val EGraph = graph.subgraph(e => e.dstId == KeyVert)
println(KeyVert)
EGraph.edges.foreach(println)
}
但是,只有添加 collect 函数以从 rdd 收集图形数据时,它才会起作用,例如
graph.vertices.collect.foreach {
network =>
val KeyVert = network._1
val EGraph = graph.subgraph(e => e.dstId == KeyVert)
println(KeyVert)
EGraph.edges.foreach(println)
}
网络太大而无法收集边缘数据,因此非常感谢任何帮助。