Spark Scala GraphX:InDegrees 不返回入度为 0 的节点的入度

Spark Scala GraphX: InDegrees not returning indegree for nodes with 0 indegree

我在互联网上查看了 GraphX 中图表的 inDegrees 字段示例,他们都说图表中的每个顶点都是 returns indegrees。但是,当我执行以下示例时:

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 个入度对。这似乎是一个奇怪的实现。我做错了什么吗?

是的,inDegrees 不 return 入度为零的顶点。同样,outDegrees 不会 return 个出度为零的顶点。但是,这通常不是问题,因为涉及 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))