当我运行 spark 应用程序时,我从 web-ui 中看到一些阶段描述类似于“在 Option.scala:120 处应用”。为什么 spark 在不在我的 spark 程序中而是在 Scala 库中的行上拆分一个阶段?
最佳答案
这些行在 Utils.getCallStack()
中生成( GitHub link )。基本上它是堆栈跟踪中最后一个 Spark 行上的方法名称(这里是 apply
)加上堆栈跟踪中第一个非 Spark 行上的文件名和行号( Option.scala:120
)。
所以看起来你做了一个 Option.getOrElse()
调用,并且您提供的默认值是开始阶段的内容。
在 Spark 1.1 中,您可以获得每个阶段的完整堆栈跟踪,从而消除猜测。
关于apache-spark - spark 在 “apply at Option.scala:120” 上拆分一个阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25482070/