如何在火花图x

时间:2019-09-04 13:23:15

标签: scala apache-spark graph spark-graphx

我正在处理具有某些节点的图。我选择了度数为1的节点,并且我想计算与其连接的邻居的度数。

我已将带有GraphLoader的边缘列表加载到RDD并根据其程度对节点进行了分组。 然后我们过滤度为1的节点,并将其放入变量degree_ones_temp_value中 想象一下,我们有两个等级为1的ID:12和35。 Id = 12的节点连接到度数为10的节点1,Id = 35的节点连接到度数为18的节点34。

变量degree_ones_temp_value是一种RDD,用于存储度数= 1的节点,并且如上所述,节点12和35的度数等于1。

degree_ones_temp_value:

  12
  35

我想通过在something中的每个节点上调用map来调用degree_ones_temp_value函数,该函数获取节点ID并计算节点的邻居并给出其长度数组,所以这就是那个节点的度数。

    def something(vertex: VertexId) = {
    val i = graph.collectNeighborIds(EdgeDirection.Either).lookup(vertex)
    (vertex,i.length)

  }

   val result = degree_ones_temp_value.map(something)
   result.foreach(println)

我希望得到以下结果:

(12,10)
(35,18)

第一个数字是我们将其传递给函数的度为= 1的节点的ID,第二个数字是度为1的节点的邻居的度。

执行此代码时出现错误:

Exception in task 0.0 in stage 13.0 (TID 10)
java.lang.NullPointerException

请帮助我解决这个问题? 为什么在地图中调用函数时会出错?

0 个答案:

没有答案