分享

请教 IDEA 环境下 spark 匿名函数内断点不停的问题

cy163 发表于 2016-9-19 11:20:56 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 10246
大家好,
我是spark新手,正在使用IDEA  version 14.0.3调试saprk程序,遇到一些奇怪的问题,以下面的代码实例进行描述。我在程序中设置了两个断点,一个在匿名函数内breakpoint-1,一个在匿名函数外breakpoint-2。当进行单步调试时,直接越过匿名函数,停在了 breakpoint-2处,breakpoint-1不停留,导致无法观测匿名函数内的变量情况。但是最终结果是正确的。


请在此地求帮。
谢谢!




[mw_shl_code=applescript,true]// scalastyle:off println
package org.apache.spark.examples
import scala.math.random
import org.apache.spark._
import scala.util.logging.Logged

/** Computes an approximation to pi */
object SparkPi{
  def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("Spark Pi").setMaster("local")
    val spark = new SparkContext(conf)
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
    val count = spark.parallelize(1 until n, slices).map { i =>
        val x = random * 2 - 1  (breakpoint-1)
        val y = random * 2 - 1
        if (x*x + y*y < 1) 1 else 0
      }.reduce(_ + _)
val test = count     (breakpoint-2)
    println("Pi is roughly " + 4.0 * count / (n - 1))
    spark.stop()
  }
}[/mw_shl_code]

已有(2)人评论

跳转到指定楼层
starrycheng 发表于 2016-9-19 14:45:43
没遇到过楼主的这种情况。假如是楼主的所描述的,可以采用变通的方法。
如果变量和正常函数可以停留。
楼主可以把匿名函数的变量赋值给函数外的其它变量查看

回复

使用道具 举报

是饭饭 发表于 2016-9-19 15:21:48
学习是唯一的生产力,努力学习,努力挣钱!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条