2016-05-06 65 views
0

我已經在網上搜索了GraphX中圖表字段inDegrees的例子,他們都說它返回圖中每個頂點的不一致。然而,當我做下面的例子:Spark Scala GraphX:InDegrees不返回indengree的節點

val a = sc.parallelize(List(Edge(1L, 2L, 3L))) 
val g = Graph.fromEdges[Long, Long](a, 0) 
g.numVertices 
g.inDegrees.take(5).foreach(println) 

我得到2個頂點,但只有1個不完整的對返回。這似乎是一個奇怪的實現。難道我做錯了什麼?

回答

2

是的,inDegrees不返回零頂點的頂點。同樣,outDegrees不返回outdegree爲零的頂點。但是,這通常不是問題,因爲涉及RDD[(VertexID, U)]的操作可以與Option一起使用;參見GraphX示例guide

// A graph where the vertex property is the out degree 
val inputGraph: Graph[Int, String] = 
    graph.outerJoinVertices(graph.outDegrees)((vid, _, degOpt) => degOpt.getOrElse(0))