Кажется, что scala.collection.SortedMap не сериализуем?
Простой пример кода:
case class MyClass(s: scala.collection.SortedMap[String, String] = SortedMap[String, String]())
object MyClass {
def apply(i: Int): MyClass = MyClass()
}
import sparkSession.implicits._
List(MyClass(1), MyClass()).toDS().show(2)
Вернется:
+-----+
| s|
+-----+
|Map()|
|Map()|
+-----+
С другой стороны, take() с треском провалится во время выполнения:
List(MyClass(1), MyClass()).toDS().take(2)
ОШИБКА codegen.CodeGenerator: не удалось скомпилировать: org.codehaus.commons.compiler.CompileException: файл 'generated.java', строка 116, столбец 100: не найден применимый конструктор/метод для фактических параметров "scala.collection.Map"; кандидатами являются: "com.caspida.algorithms.security.offline.exfilterthreat.MyClass(scala.collection.SortedMap)"