【发布时间】:2020-03-02 15:34:45
【问题描述】:
我使用 GraphX 来处理图形。我已经使用 GraphLoader 来加载它,并使用以下代码创建了一个包含每个节点的邻居的变量:
val all_neighbors: VertexRDD[Array[VertexId]] = graph.collectNeighborIds(EdgeDirection.Either).cache()
因为我经常需要节点邻居,所以我决定广播它们。当我使用此代码时出现错误:
val broadcastVar = sc.broadcast(all_neighbors)
但是当我使用这段代码时没有错误:
val broadcastVar = sc.broadcast(all_neighbors.collect())
使用collect()进行广播是否正确?
还有一个问题。我想将此广播变量更改为键值。这段代码对吗?
val nvalues = broadcastVar.value.toMap
上面的代码(我的意思是nvalues)是否广播到集群中的所有从站?我也应该广播 nvalues 吗?我对广播主题有点困惑。请帮我解决这个问题。
【问题讨论】:
标签: scala apache-spark spark-graphx