subgraph示例
Posted datanerd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了subgraph示例相关的知识,希望对你有一定的参考价值。
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
val users: RDD[(VertexId, (String, String))] =
sc.parallelize(Array(
(3L, ("rxin", "student")),
(7L, ("jgonzal", "postdoc")),
(5L, ("franklin", "prof")),
(2L, ("istoica", "prof")),
(4L, ("peter", "student"))
))
users = ParallelCollectionRDD[62] at parallelize at <console>:49
ParallelCollectionRDD[62] at parallelize at <console>:49
val relationships: RDD[Edge[String]] =
sc.parallelize(Array(
Edge(3L, 7L, "collab"),
Edge(5L, 3L, "advisor"),
Edge(2L, 5L, "colleague"),
Edge(4L, 0L, "student"),
Edge(5L, 0L, "colleague")
))
relationships = ParallelCollectionRDD[63] at parallelize at <console>:49
ParallelCollectionRDD[63] at parallelize at <console>:49
val defaultUser = ("John Doe", "Missing")
defaultUser = (John Doe,Missing)
(John Doe,Missing)
val graph = Graph(users, relationships, defaultUser)
graph = [email protected]
[email protected]
graph.vertices.collect.foreach(println(_))
(0,(John Doe,Missing))
(2,(istoica,prof))
(3,(rxin,student))
(4,(peter,student))
(5,(franklin,prof))
(7,(jgonzal,postdoc))
graph.triplets
.map(triplet => triplet.srcAttr._1 + " is the " + triplet.attr + " of " + triplet.dstAttr._1)
.collect.foreach(println(_))
rxin is the collab of jgonzal
franklin is the advisor of rxin
istoica is the colleague of franklin
peter is the student of John Doe
franklin is the colleague of John Doe
去除Missing属性的节点
val removeMissingGraph = graph.subgraph(vpred = (id, attr) => attr._2 != "Missing")
removeMissingGraph = [email protected]
[email protected]
removeMissingGraph.vertices.collect.foreach(println(_))
(2,(istoica,prof))
(3,(rxin,student))
(4,(peter,student))
(5,(franklin,prof))
(7,(jgonzal,postdoc))
removeMissingGraph.triplets
.map(triplet => triplet.srcAttr._1 + " is the " + triplet.attr + " of " + triplet.dstAttr._1)
.collect.foreach(println(_))
rxin is the collab of jgonzal
franklin is the advisor of rxin
istoica is the colleague of franklin
去除Pro属性的节点
val removeProfGraph = graph.subgraph(vpred = (id, attr) => attr._2 != "prof")
removeProfGraph.vertices.collect.foreach(println(_))
(0,(John Doe,Missing))
(3,(rxin,student))
(4,(peter,student))
(7,(jgonzal,postdoc))
removeProfGraph = [email protected]
[email protected]
removeProfGraph.triplets
.map(triplet => triplet.srcAttr._1 + " is the " + triplet.attr + " of " + triplet.dstAttr._1)
.collect.foreach(println(_))
rxin is the collab of jgonzal
peter is the student of John Doe
以上是关于subgraph示例的主要内容,如果未能解决你的问题,请参考以下文章
pygraphviz 上的嵌套集群(或 add_subgraph)
hdu 6268 Master of Subgraph(点分治+bitset)