java.io.NotSerializableException no Spark Streaming com ponto de verificação ativado

código abaixo:

def main(args: Array[String]) {
    val sc = new SparkContext
    val sec = Seconds(3)
    val ssc = new StreamingContext(sc, sec)
    ssc.checkpoint("./checkpoint")
    val rdd = ssc.sparkContext.parallelize(Seq("a","b","c"))
    val inputDStream = new ConstantInputDStream(ssc, rdd)

    inputDStream.transform(rdd => {
        val buf = ListBuffer[String]()
        buf += "1"
        buf += "2"
        buf += "3"
        val other_rdd = ssc.sparkContext.parallelize(buf)   // create a new rdd
        rdd.union(other_rdd)
    }).print()

    ssc.start()
    ssc.awaitTermination()
}

e lance a exceção:

java.io.NotSerializableException: DStream checkpointing has been enabled but the DStreams with their functions are not serializable
org.apache.spark.streaming.StreamingContext
Serialization stack:
    - object not serializable (class: org.apache.spark.streaming.StreamingContext, value: org.apache.spark.streaming.StreamingContext@5626e185)
    - field (class: com.mirrtalk.Test$anonfun$main$1, name: ssc$1, type: class org.apache.spark.streaming.StreamingContext)
    - object (class com.mirrtalk.Test$anonfun$main$1, <function1>)
    - field (class: org.apache.spark.streaming.dstream.DStream$anonfun$transforme lance a exceção:$anonfun$apply$21, name: cleanedF$2, type: interface scala.Function1)
    - object (class org.apache.spark.streaming.dstream.DStream$anonfun$transforme lance a exceção:$anonfun$apply$21, <function2>)
    - field (class: org.apache.spark.streaming.dstream.DStream$anonfun$transformquando removo o código ssc.checkpoint ("./ checkpoint"), o aplicativo pode funcionar bem, mas preciso ativar o checkpoint.$anonfun$5, name: cleanedF$3, type: interface scala.Function2)
    - object (class org.apache.spark.streaming.dstream.DStream$anonfun$transformquando removo o código ssc.checkpoint ("./ checkpoint"), o aplicativo pode funcionar bem, mas preciso ativar o checkpoint.$anonfun$5, <function2>)
    - field (class: org.apache.spark.streaming.dstream.TransformedDStream, name: transformFunc, type: interface scala.Function2)

quando removo o código ssc.checkpoint ("./ checkpoint"), o aplicativo pode funcionar bem, mas preciso ativar o checkpoint.

como corrigir esse problema quandoativar ponto de verificação?

questionAnswers(1)

yourAnswerToTheQuestion