首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark Scala GraphX:在地图函数中调用最短路径

Spark Scala GraphX:在地图函数中调用最短路径
EN

Stack Overflow用户
提问于 2016-05-12 09:21:19
回答 1查看 989关注 0票数 0

我在我的代码中有一个问题,当我映射一个在全局图形变量上调用最短路径的函数时,我收到一个空指针异常运行时错误。出于某些原因,即使在终端中定期初始化距离不会抛出错误,而且调用testF()通常也能正常工作,但当它被映射时,它就不能工作。当我删除testF函数内部的错误距离调用时,该示例运行良好。有人知道为什么会这样吗?

代码语言:javascript
复制
val testG = Graph.fromEdges[Int, Int](sc.parallelize(List(Edge(1, 2, 1), Edge(2, 3, 1))), 0)
val testRDD = sc.parallelize(List(1, 2, 3, 4))
def testF() : Int = {
     val distances = ShortestPaths.run(testG, Seq(15134567L))
     return 5
}
testF() //works fine and returns 5
val testR = testRDD.map{case(num) => (num, test())}
testR.take(10).foreach(println) //gives a null pointer error
EN

回答 1

Stack Overflow用户

发布于 2016-05-14 14:32:11

正如@DanieldePaula提到的-你不能将分布式方法嵌套在RDD中,相反,ShortestPaths.run中的逻辑需要提取并重新形成为简单的scala代码-并且没有提到sc (SparkContext)方法、SparkJob或任何其他仅限驱动程序的机制。您需要坚持使用可序列化和Worker兼容的逻辑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37175738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档