我想創建一個新的 mongodb RDD,每當我進入foreachRDD
時。不過我有序列化問題:Spark Streaming:foreachRDD更新我的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) })
這會給我一個錯誤:
object not serializable (class: org.apache.spark.streaming.StreamingContext, value: [email protected])
任何想法?
'SparkContext'不是可序列化的,因此您不能在任何轉換或操作方法中使用,您只能在驅動程序類中使用。 – Shankar
是否有任何具體的原因,你爲什麼要將列表轉換爲rdd裏面的foreachRDD方法? – Shankar