我正在处理具有某些节点的图。我选择了度数为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
请帮助我解决这个问题? 为什么在地图中调用函数时会出错?