【发布时间】:2016-04-21 06:09:04
【问题描述】:
我想在每次进入foreachRDD 时创建一个新的 mongodb 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: org.apache.spark.streaming.StreamingContext@31133b6e)
有什么想法吗?
【问题讨论】:
-
SparkContext不可序列化,因此不能在任何转换或动作方法中使用,只能在驱动程序类中使用。 -
在 foreachRDD 方法中将 list 转换为 rdd 有什么具体原因吗?
标签: mongodb apache-spark spark-streaming