4
私はこのように定義されたスパークRDDありますなぜスカラメソッドは機能しないうちにシリアル化できますか?
val dataset = CreateRDD(data.filter(someFilter))
を私は次の観察:
//if filter is defined as function, such as following,
//then spark will throw spark `task not serialisable exception`
val someFilter = (some) => true
//if filter is defined as method, such as following then everything will be fine
def someFilter(some) => true
なぜですか?テスト仕様で
はい、関数/メソッドは、すべてのメンバーとして定義されている
これらの定義(val/def)はどこに宣言されていますか?彼らはクラスのメンバーとして宣言されていますか?オブジェクト?または、メソッドの実装内のローカル変数として?これらのオプションの間で動作が異なる可能性があります。 –
メソッドは直列化できません。 – pedrofurla
はい正確なエラーメッセージを含むより多くのコンテキストが重要です。最初の例では、何らかの理由でクラスがクロージャーでキャプチャされている可能性があります。 – puhlen