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