我有以下代码
class ATest extends FunSuite with SharedSparkContext with RDDComparisons with BeforeAndAfter with Serializable {
val validData: String = "/users/data.csv"
test("1.ATest") {
val localConf = super.conf
localConf.setAppName("Atest").
set("spark.input.path", validData).
val a = new A(localConf){
override def validate(): (List[String], List[String]) = {
(List(validData),List[String]())
}
}
a.process()
实际a级如下
class A extends Serialibale{
def process(){ validate() ... }
def validate(){...}
}
在模拟验证调用的测试用例中,我用测试值覆盖它。问题是。这个代码如上所示
org.apache.spark.SparkException: Task not serializable
Cause: java.io.NotSerializableException: org.scalatest.Assertions$AssertionsHelper
[info] Serialization stack:
但是,当我在测试方法中移动示例级的“validdata”定义时,它可以正常工作。因为atest扩展了serializable,所以整个类应该是可序列化的,对吗?为什么我会得到这个例外?
-拉吉
暂无答案!
目前还没有任何答案,快来回答吧!