Spark学习笔记:joinVertices & outJoinVertices

joinVertices
若graph顶点的Id在点集pointTest中,则将graph顶点的属性使替换为点集pointTest的点属性;
若graph顶点Id不在点集pointTest中,则不对graph顶点属性做任何修改。

1.创建graph

scala> val graph = GraphLoader.edgeListFile(sc, "file:///home/hadoop/1.txt")
scala> graph.triplets.collect.foreach(println(_))

这里写图片描述


2.自定义pointTest点集

scala> val pointTest: RDD[(VertexId,Int)] = sc.parallelize(Array((1L,10),(2L,10),(3L,10)))

这里写图片描述


3.将graph顶点属性置为零;joinVertices:

scala> val outputGraph = graph.mapVertices((id,attr) => 0).joinVertices(pointTest)((_,_,optDeg) => optDeg)
scala> outputGraph.triplets.collect.foreach(println(_))

这里写图片描述


4.outJoinVertices

scala> val outputGraph = graph.mapVertices((id,attr) => 0).outerJoinVertices(pointTest)((_,_,optDeg) => optDeg.getOrElse(0))

—————————–

将顶点属性改为各点出度:

scala> val outputGraph = graph.mapVertices((id,attr) => 0).outerJoinVertices(graph.outDegrees)((_,_,optDeg) => optDeg.getOrElse(0))

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值