Caused by: java.io.NotSerializableException: org.apache.spark.sql.api.java.StructField"的錯誤java
通常是由於在map、filter等的參數使用了外部的變量,可是這個變量不能序列化。特別是當引用了某個類(常常是當前類)的成員函數或變量時,會致使這個類的全部成員(整個類)都須要支持序列化。解決這個問題最經常使用的方法有:sql
1.若是能夠,將依賴的變量放到map、filter等的參數內部定義。這樣就能夠使用不支持序列化的類;2..若是能夠,將依賴的變量獨立放到一個小的class中,讓這個class支持序列化;這樣作能夠減小網絡傳輸量,提升效率;apache
3.若是能夠,將被依賴的類中不能序列化的部分使用transient關鍵字修飾,告訴編譯器它不須要序列化。api
4.將引用的類作成可序列化的。網絡
我在scala裏面調用java的程序,直接實現接口Serializable 函數
public class LogParser extends Common implements java.io.Serializable{spa
解決的scala