【发布时间】:2015-07-10 10:24:55
【问题描述】:
希望有人能提供帮助。
我正在尝试编写一个程序,该程序需要对连接到 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)
}
网络太大,无法收集边缘数据,因此我们将不胜感激。
【问题讨论】:
标签: scala foreach network-programming apache-spark spark-graphx