【发布时间】:2021-07-14 20:42:06
【问题描述】:
我正在学习 spark-sql 并尝试在创建的 DataSet 中应用过滤器。我已经定义了一个简单的 Employee 案例类,它有 3 个字段,name、salary 和 dpt。
case class Employee( name: String, salary: Double, age: Int, dpt: Dept)
最后一个字段 dpt 定义如下:
sealed trait Dept extends { val name: String }
case object Accountability extends Dept { override val name = "AC"}
case object Sales extends Dept { override val name = "S"}
case object Finance extends Dept { override val name = "F"}
case object Marketing extends Dept { override val name = "M"}
case object Communication extends Dept { override val name = "C"}
case object Reception extends Dept { override val name = "R"}
case object HumanResource extends Dept { override val name = "HR"}
我试过用kryo编码器解决,但是不行。
object DeptEncoders {
implicit def deptEncoder : org.apache.spark.sql.Encoder[Dept] = org.apache.spark.sql.Encoders.kryo[Dept]
}
【问题讨论】:
-
也许你也需要
Employee的编码器
标签: scala apache-spark apache-spark-sql dataset