执行RDD映射函数时,任务不可序列化错误

时间:2016-07-08 06:31:35

标签: apache-spark dataframe rdd

相信我这个,我已经尝试过辛苦劳累的日夜,但只是无法掌握这个任务不可序列化的错误,现在完全吃掉了我!。

我知道在SO上有很多类似的问题,但要么我真的太愚蠢了(我不希望这里有任何勺子喂食),或者我完全是一个不同的错误故事。

完全要求你们看看这个:

class RootServer(val config: Config) extends Configurable with Server with Serializable {
      var PKsAffectedDF: DataFrame = dataSource.getAffectedPKs(prevBookMark,currBookMark)
      if(PKsAffectedDF.rdd.isEmpty()){
              Holder.log.info("[SQL] no records to upsert in the internal Status Table == for bookmarks : "+prevBookMark+" ==and== "+currBookMark+" for table == "+dataSource.db+"_"+dataSource.table)
      }
      val PKsAffectedDF_json = PKsAffectedDF.toJSON
      PKsAffectedDF_json.foreachPartition { partitionOfRecords => {
        var props = new Properties()
        props.put('','')
        props.put('','')
        props.put('','')
        props.put('','')
        val producer = new KafkaProducer[String,String](props)
                partitionOfRecords.foreach
                {
                    case x:String=>{
                        println(x)

                        val message=new ProducerRecord[String, String]("[TOPIC] "+dbname+"_"+dbtable,dbname,x)
                        producer.send(message)
                    }
                }
        }
    }
}

现在Config是typesafe.config类,我认为它是可序列化的,而服务器类是一个基本的抽象类,只有两个方法。我完全陷入了以下堆栈跟踪:

http://pastebin.com/5yPA1s7e很抱歉粘贴它,但整个堆栈跟踪就在那里。

先谢谢你。

0 个答案:

没有答案