Кодер набора данных для коллекций Scala
Я получаю исключение при попытке прочитать набор данных из s3. Класс кейса компании содержит множество с кейсом сотрудника.
Exception in thread "main" java.lang.UnsupportedOperationException: No Encoder found for Set[com.model.company.common.Employee]
- field (class: "scala.collection.immutable.Set", name: "employees")
- field (class: "com.model.company.Company", name: "company")
Я пробовал с крио:
implicit def myDataEncoder[T]: Encoder[Set[Employee]] = Encoders.kryo[scala.collection.immutable.Set[Employee]
но это также не работает. Знаете ли вы, как преобразовать коллекцию Scala в набор данных?
Код:
val sqlContext = sparkSession.sqlContext import sqlContext.implicits._ val records = sparkSession.read.json(s"s3a://${config.input.fullPath}").as[Company]
1 ответ
Изменить из списка, установить -> Seq
Дополнительную информацию о типе данных набора данных вы можете найти здесь: https://spark.apache.org/docs/latest/sql-programming-guide.html