gpt4 book ai didi

apache-spark - Apache Spark GraphX 连接组件

转载 作者:行者123 更新时间:2023-12-04 11:36:37 27 4
gpt4 key购买 nike

如何使用子图函数获取仅包含来自特定连接组件的顶点和边的图?假设我知道连接组件 id,最终目标是基于连接组件创建一个新图。我想保留原始图中的顶点属性。

最佳答案

您必须将带有组件 ID 的图连接到原始图,按组件 ID 过滤(取子图),然后丢弃组件 ID。

import scala.reflect._
import org.apache.spark.graphx._
import org.apache.spark.graphx.lib.ConnectedComponents

def getComponent[VD: ClassTag, ED: ClassTag](
g: Graph[VD, ED], component: VertexId): Graph[VD, ED] = {
val cc: Graph[VertexId, ED] = ConnectedComponents.run(g)
// Join component ID to the original graph.
val joined = g.outerJoinVertices(cc.vertices) {
(vid, vd, cc) => (vd, cc)
}
// Filter by component ID.
val filtered = joined.subgraph(vpred = {
(vid, vdcc) => vdcc._2 == Some(component)
})
// Discard component IDs.
filtered.mapVertices {
(vid, vdcc) => vdcc._1
}
}

关于apache-spark - Apache Spark GraphX 连接组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com