Chcę utworzyć nowy mongodb RDD za każdym razem gdy wchodzę do środka foreachRDD
. Jednak mam problemy serializacji:Spark Streaming: foreachRDD aktualizuje moje 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) })
to daje mi błąd:
object not serializable (class: org.apache.spark.streaming.StreamingContext, value: [email protected])
jakiś pomysł?
'SparkContext' nie podlega przekształcaniu do postaci szeregowej, więc nie można używać wewnątrz żadnej transformacji ani metod działania, należy używać tylko w klasie sterownika. – Shankar
Czy istnieją konkretne powody, dla których konwertujesz listę na rdd w metodzie foreachRDD? – Shankar