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)

处理屏幕旋转上的片段重复(带有示例代码)

CS224W摘要12.Frequent Subgraph Mining with GNNs

[HDU6268]Master of Subgraph