所以,另一个SO问题促使我尝试以下方法:
object Foo{
def f = 1
}
sc.parallelize(List(1)).map(x=>{
val myF = Foo.f _
x + myF()
}
哪个有效,但以下情况不起作用:
object Foo{
def f = 1
def run(rdd: org.apache.spark.rdd.RDD[Int]) = rdd.map(x=>{
val myF = Foo.f _
x + myF()
}
}
Foo.run(sc.parallelize(List(1)))
明天,当我可以删除REPL输出的混乱时,我将深入了解序列化堆栈。但是,这应该是一回事。为什么一种方式会大喊大叫而另一种方式却没有。