在REPL中使用对象时,任务不可序列化

时间:2015-04-21 04:32:49

标签: scala apache-spark closures

所以,另一个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输出的混乱时,我将深入了解序列化堆栈。但是,这应该是一回事。为什么一种方式会大喊大叫而另一种方式却没有。

0 个答案:

没有答案