【问题标题】:Issue converting scala case class to spark dataset with embedded options that wrap monads问题将 scala 案例类转换为带有包含单子的嵌入式选项的 spark 数据集
【发布时间】:2017-10-14 21:25:25
【问题描述】:

我今天在尝试将案例类的 Seq 转换为 Spark 数据集时遇到了问题。我想我会在这里分享解决方案,因为它很难确定。

我有一个案例类正在尝试转换为数据集

case class Foo(name: String, names: Option[List[String]])
val myData: Seq[Foo] = Seq(Foo("A", Some(List("T","U"))),
                           Foo("B", Some(List("V","W"))))

val myFooDataset = sparkSession.createDataset(myData)

这会出错并抱怨没有编码器。我怎样才能让它工作?

【问题讨论】:

    标签: scala apache-spark dataset


    【解决方案1】:

    在这种情况下的答案是将嵌入式列表转换为SEQ。实际上,只是有一个列表的列(不被包裹在一个选项中)将工作,但一旦将其包装在一个选项中,它需要成为SEQ。

    case class Foo(name: String, names: Option[Seq[String]])
    val myData: Seq[Foo] = Seq(Foo("A", Some(Seq("T","U"))),
                               Foo("B", Some(Seq("V","W"))))
    
    val myFooDataset = sparkSession.createDataset(myData)
    

    【讨论】:

      猜你喜欢
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 2021-12-30
      • 2020-08-24
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      相关资源
      最近更新 更多