小编And*_* T.的帖子

"不朽"火花流媒体工作?

好吧,我问过一个有点类似的问题涉及到星火内部如何处理异常,但我当时的例子是真不明白还是完整的.那里的答案指向了某个方向,但我无法解释一些事情.

我已经设置了一个虚拟火花流媒体应用程序,在转换阶段,我有一个俄罗斯轮盘表达式,可能会或不会抛出异常.如果抛出异常,我会停止Spark流式上下文.就是这样,没有其他逻辑,没有RDD转变.

object ImmortalStreamingJob extends App {
  val conf = new SparkConf().setAppName("fun-spark").setMaster("local[*]")
  val ssc  = new StreamingContext(conf, Seconds(1))

  val elems = (1 to 1000).grouped(10)
    .map(seq => ssc.sparkContext.parallelize(seq))
    .toSeq
  val stream = ssc.queueStream(mutable.Queue[RDD[Int]](elems: _*))

  val transformed = stream.transform { rdd =>
    try {
      if (Random.nextInt(6) == 5) throw new RuntimeException("boom")
      else println("lucky bastard")
      rdd
    } catch {
      case e: Throwable =>
        println("stopping streaming context", e)
        ssc.stop(stopSparkContext = true, stopGracefully = false)
        throw e
    }
  }

  transformed.foreachRDD { …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark spark-streaming

11
推荐指数
1
解决办法
883
查看次数

Scala隐式类参数

我有一个隐式参数定义为:

 class Test(implicit one: String)
Run Code Online (Sandbox Code Playgroud)

我想像这样实例化该对象:

val grr = new Test("aha")
Run Code Online (Sandbox Code Playgroud)

我得到以下异常.

error: too many arguments for constructor Test: ()(implicit one: String)Test
       val grr = new Test("aha")
Run Code Online (Sandbox Code Playgroud)

但如果我这样称呼它

val grr = new Test()("haha")
grr: Test = Test@3bd40a57
Run Code Online (Sandbox Code Playgroud)

我得到一个Test对象.

为什么Scala实例化隐式方法要求您在此实例中使用空参数调用对象?为什么会为此类对象实例显示隐式空白参数列表?

java scala

2
推荐指数
1
解决办法
788
查看次数

标签 统计

scala ×2

apache-spark ×1

java ×1

spark-streaming ×1