Spark Graphx - 构建网络代码讲解

本文介绍如何使用SparkGraphX建立社交网络模型,通过具体代码示例解释了节点与边的定义及其属性设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天在使用微博的数据来做一些分析,我用Spark Graphx来进行微博转发网络的建立。新手刚开始学习Spark Graphx时,可能不会使用Spark Graphx来进行关系网络的建立。下面根据官网的例子来进行讲解.下面是官网的代码:

val users: RDD[(VertexId, (String, String))] =
  sc.parallelize(Array((3L, ("rxin", "student")), (7L, ("jgonzal", "postdoc")),
                       (5L, ("franklin", "prof")), (2L, ("istoica", "prof"))))
// Create an RDD for edges
val relationships: RDD[Edge[String]] =
  sc.parallelize(Array(Edge(3L, 7L, "collab"),    Edge(5L, 3L, "advisor"),
                       Edge(2L, 5L, "colleague"), Edge(5L, 7L, "pi")))
// Define a default user in case there are relationship with missing user
val defaultUser = ("John Doe", "Missing")
// Build the initial Graph
val graph = Graph(users, relationships, defaultUser)

含义解释

在上面的代码,首先大家可以看到users,users代表的是关系网络中的点的集合。可以把它理解为关系图的点。比如一个点 (3L, (“rxin”, “student”)),其中3L代表的是这个节点的id号,后面(“rxin”, “student”)这个代表这个点的属性。所以users代表是点的集合,你在写你自己的网络的时候,首先应该先建立一个RDD来表示你的网络中的节点信息。可以按照上面类似代码来进行建立,如果是从外部数据源来进行节点集合的RDD创建的话,那么可以用map,flatmap函数来进行转换。

下面的relationships RDD就是点和点之间的连接边,第三个之表示的是这条有向边的属性。最后的通过Graph来记性关系图的建立。第三个defaultUser代表默认值,如果不需要话,直接 Graph(users, relationships)来进行关系图的创建也可以。通过这些讲解,希望可以帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值