Spark(java)報錯org.apache.spark.SparkException: Task not serializable

報錯原因

在map或filter操作中,調用了類成員函數(shù)或類成員變量,所以需要該類可序列化。
如果在map或filter中調用的是方法內部類,或者匿名類,也會報錯。原因是Java的非靜態(tài)內部類都隱式的持有外部類的引用,序列化內部類的時候也會序列化外部類。

解決方法

方法1

將該類implements Serializable,然后將不能序列化的成員變量前加transient關鍵字,特別是JavaSparkContext成員變量。

方法2

使用lambda表達式替換匿名內部類。

方法3

調用靜態(tài)成員函數(shù)和靜態(tài)變量。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、基礎知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,559評論 0 4
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,806評論 0 11
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,220評論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,631評論 1 32
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,441評論 0 16

友情鏈接更多精彩內容