У меня есть класс дел, который принимает экземпляр класса java LinkedSparseMatrix (пакет - no.uib.cipr.matrix.sparse
) как -
case class A(mat: LinkedSparseMatrix)
Когда я пытаюсь преобразовать List[LinkedSparseMatrix]
в Spark RDD, это бросает TaskNotSerializableException
. Поэтому я объявляю поле как переходное. Но тогда все поля mat становятся нулевыми, что, я думаю, связано со значением по умолчанию для объектов, определенных как переходные.
Итак, я попытался определить переменную как lazy и таким образом изменил свой класс на -
class A (m: LinkedSparseMatrix) extends Serializable {
@transient lazy val mat = m
// some other code
}
Но теперь я все еще получаю - java.io.NotSerializableException: no.uib.cipr.matrix.sparse.LinkedSparseMatrix
- что я не понимаю почему!
Есть ли какое-то решение для этого? Заранее спасибо.