GraphX构建图的时候,顶点数增多了是为什么,求教!

2019-01-02 23:03发布

刚开始接触GraphX,拿到了一份类似用户关注的测试数据。

用户ID10000条,对应10000个节点。用户关系的数量不明。

数据格式如下:

建图代码如下:

import org.apache.spark.graphx.Edge
import org.apache.spark.graphx.Graph

val vertexRdd = sc.textFile("hdfs://ubt1:9820/WBNW/Vertex")
val edgeRdd = sc.textFile("hdfs://ubt1:9820/WBNW/Edge")

val users = vertexRdd.map(line => line.split(",")).map(parts => (parts(0).toLong, parts(1)))
val follow_relation = edgeRdd.map(line => line.split(",")).map(parts => new Edge(parts(0).toLong,parts(1).toLong,parts(2).toLong))

val graph = Graph(users, follow_relation)

val v_count = vertexRdd.count
val e_count = edgeRdd.count

val gv_count = graph.vertices.count
val ge_count = graph.edges.count

输出结果如下:

发现边的数量在Rdd与Graph中相同,点却明显不一致。请问是什么原因,谢谢各位。

1条回答
疯言疯语
2楼-- · 2019-01-02 23:35

恩,原来是edgeRdd中有很多点是vertex中没有的,通过设置VD的defaultvaule再做filter得到没有属性的vertex数量正好为548529。疑惑解开了。

查看更多
登录 后发表回答