spark scala unittest不可序列化异常

7gyucuyw  于 2021-07-12  发布在  Spark
关注(0)|答案(0)|浏览(241)

我有以下代码

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,所以整个类应该是可序列化的,对吗?为什么我会得到这个例外?
-拉吉

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题