案例类的无样本转换以更改枚举的数据类型

时间:2019-04-02 22:39:46

标签: scala apache-spark projection case-class enumeratum

我有一个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失败。 如何将案例类(没有样板)投影到:

  • 要么在火花中都能正常工作(我)想要具有二进制kryo输出
  • 或通过Foo.Baz.entryName将其转换为字符串(但无需定义类似的类)

0 个答案:

没有答案