7
シリアライズ不可能なタスク:オブジェクトではなくクラスでのみ、クロージャーの外部で関数を呼び出すと、java.io.NotSerializableException
クロージャーの外で関数を呼び出すときに奇妙な動作をする: 関数がオブジェクト内にある場合、すべてが機能しています 関数がクラスにあるときget: シリアル化できないタスク: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 help class testing { …