尝试从 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")
我尝试过使用kryo:
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]
从列表更改,设置 -> 序列
有关数据集数据类型的详细信息,可在此处找到: https://spark.apache.org/docs/latest/sql-programming-guide.html#data-types