不可序列化的任务:java.io.NotSerializableException仅在类在调用闭包之外的函数时,会产生奇怪的行为:当函数在对象中时,一切都在工作。当函数在类中时,获取:不可序列化的任务:java.io.NotSerializableException:测试问题是,我需要类中的代码,而不是对象。知道为什么会这样吗?Scala对象是序列化的(默认吗?)这是一个工作代码示例:object working extends App {
val list = List(1,2,3)
val rddList = Spark.ctx.parallelize(list)
//calling function outside closure
val after = rddList.map(someFunc(_))
def someFunc(a:Int) = a+1
after.collect().map(println(_))}这是一个不起作用的例子:object NOTworking extends App {
new testing().doIT}//adding extends Serializable wont helpclass testing {
val list = List(1,2,3)
val rddList = Spark.ctx.parallelize(list)
def doIT = {
//again calling the fucntion someFunc
val after = rddList.map(someFunc(_))
//this will crash (spark lazy)
after.collect().map(println(_))
}
def someFunc(a:Int) = a+1}
添加回答
举报
0/150
提交
取消