我想在单元测试中创建一个rdd(实际的rdd,不是mocked),它包含mockito元素。
我的尝试是:
lazy val sc = SparkContext.getOrCreate()
val myRDD = sc.parallelize(Seq( (Mockito.mock(classOf[ImmutableBytesWritable]), Mockito.mock(classOf[Result])) ))
哪里 ImmutableBytesWritable
以及 Result
来自hbase api。我得到了 org.apache.spark.SparkException: Task not serializable
有什么办法可以达到我的目标吗?谢谢您!
1条答案
按热度按时间xghobddn1#
默认情况下,mockito mock是不可序列化的,这就是为什么会出现错误。
要创建可序列化的模拟,必须显式定义它:
同样的事情也应该适用于你的
Result
嘲弄。万一你有
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.io.ImmutableBytesWritable$MockitoMock$...
例外情况下,您可能需要使用:最后,你应该有这样的东西: