我正在从源节点和目标节点的元组的RDD构建图形,如下所示:
Graph.fromEdgeTuples(rawEdges = edgeList, 1)
首先,我不太清楚第二个参数是什么。从文档中,
defaultValue用于创建顶点的顶点属性 由边缘引用
我仍然没有得到它。
其次,我找不到任何可以计算最大组件大小的东西。在调用foreach
方法后,没有map
已实施,也未reduceByKey
或connectedComponents
或其他任何内容。
答案 0 :(得分:3)
defaultValue
是分配给所有已创建边的属性:
val graph = Graph.fromEdgeTuples(sc.parallelize(Seq(
(1, 2), (2, 3), (4, 5))), 1)
graph.edges.map(_.attr).distinct.collect
// Array[Int] = Array(1)
提取组件ID并执行一项工作:
val ids = graph.connectedComponents.vertices map((v: (Long, Long)) => v._2)
ids.map((_, 1L)).reduceByKey(_ + _)