Java Spark Scala中的任务不可序列化错误

Java Spark Scala中的任务不可序列化错误,java,scala,serialization,apache-spark,Java,Scala,Serialization,Apache Spark,我正在尝试将csv文件读入Spark中的RDD(使用Scala)。我已经做了一个函数来首先过滤数据,这样它就不会考虑头了 def isHeader(line: String): Boolean = { line.contains("id_1") } 然后我运行以下命令: val noheader = rawblocks.filter(x => !isHeader(x)) rawblocks RDD从26MB大小的csv文件中读取数据 我收到任务不可序列化错误。解决方案是什么?最可能的情

我正在尝试将csv文件读入Spark中的RDD(使用Scala)。我已经做了一个函数来首先过滤数据,这样它就不会考虑头了

def isHeader(line: String): Boolean = {
line.contains("id_1")
}
然后我运行以下命令:

val noheader = rawblocks.filter(x => !isHeader(x))
rawblocks RDD从26MB大小的csv文件中读取数据


我收到任务不可序列化错误。解决方案是什么?

最可能的情况是,您在一个不可序列化的类中定义了isHeader方法。因此,isHeader绑定到所述类的不可序列化实例,然后通过闭包将该实例发送给执行者


您可能希望在单独的对象中定义isHeader,或者使封闭类可序列化(这不是一个好的做法,因为您仍将在作业中附带整个类实例,这不是预期的)

最有可能的情况是,您在一个不可序列化的类中定义了isHeader方法。因此,isHeader绑定到所述类的不可序列化实例,然后通过闭包将该实例发送给执行者


您可能希望在单独的对象中定义isHeader,或者使封闭类可序列化(这不是一个好的做法,因为您仍将在作业中附带整个类实例,这不是预期的)

如何创建一个。如上所述。TaskNotSerializable意味着调用函数的类中的其他内容不可序列化。如果您提供更多的外部代码,我们可以提供帮助。另外,堆栈应该说明哪个类不可序列化。如何创建。如上所述。TaskNotSerializable意味着调用函数的类中的其他内容不可序列化。如果您提供更多的外部代码,我们可以提供帮助。此外,堆栈应该说明哪个类是不可序列化的。