Voglio creare un nuovo mongodb RDD ogni volta che entro foreachRDD
. Tuttavia ho problemi di serializzazione:Spark Streaming: foreachRDD aggiorna il mio mongo RDD
mydstream
.foreachRDD(rdd => {
val mongoClient = MongoClient("localhost", 27017)
val db = mongoClient(mongoDatabase)
val coll = db(mongoCollection)
// ssc is my StreamingContext
val modelsRDDRaw = ssc.sparkContext.parallelize(coll.find().toList) })
Questo mi darà un errore:
object not serializable (class: org.apache.spark.streaming.StreamingContext, value: [email protected])
Qualche idea?
'SparkContext' non è serializzabile, quindi non è possibile utilizzare all'interno di alcuna trasformazione o metodi di azione, è necessario utilizzare solo nella classe di driver. – Shankar
c'è qualche ragione specifica per cui stai convertendo la lista in rdd all'interno del metodo foreachRDD? – Shankar