我有一个Enumeratum枚举,需要将其加载到spark数据帧中。显然,由于缺少编码器,此操作失败。
import enumeratum._
sealed trait Foo extends EnumEntry
object Foo extends Enum[Foo] {
val values = findValues
case object Baz extends Foo
case object Bar extends Foo
}
case class FooBar(a:Int, lotOfOthterFields:String, xxxx:Seq[Foo])
Seq(FooBar(1, "one", Foo.Baz), FooBar(2, "two", Foo.Bar)).toDF
No Encoder found for type Foo
失败。
如何将案例类(没有样板)投影到:
Foo.Baz.entryName
将其转换为字符串(但无需定义类似的类)