2016-07-07 61 views
1

我想將Spark中的RDD讀入csv文件(使用Scala)。我已經做了一個函數來首先過濾數據,以便它不考慮頭部。Spark Scala中的任務不可序列化錯誤

def isHeader(line: String): Boolean = { 
line.contains("id_1") 
} 

,然後我運行下面的命令:

val noheader = rawblocks.filter(x => !isHeader(x)) 

的rawblocks RDD從csv文件,該文件是在大小

我越來越沒有任務序列錯誤26MB讀取數據。什麼是解決方案?

+5

如何創建[mcve]。 – zero323

+0

添加更多詳情 – Abhi

+0

如上。 TaskNotSerializable意味着您的函數被調用的類中的其他內容不可序列化。如果你提供更多的外部代碼,我們可以提供幫助。你的棧也應該說哪個類是不可序列化的。 –

回答

0

很可能,您已經在不可序列化的類中定義了isHeader方法。因此,isHeader綁定到所述類的不可序列化的實例,然後通過閉包交付給執行者。你可能希望在一個單獨的對象中定義isHeader,或者使封閉類可序列化(這不是一個好習慣,因爲你仍然會用你的作業傳遞整個類實例,這不是目的)。

相關問題