【问题标题】:How to convert a Dataset[Seq[T]] to Dataset[T] in Spark如何在 Spark 中将 Dataset[Seq[T]] 转换为 Dataset[T]
【发布时间】:2018-01-25 03:46:33
【问题描述】:

如何将Dataset[Seq[T]] 转换为Dataset[T]

例如,Dataset[Seq[Car]]Dataset[Car]

【问题讨论】:

    标签: scala apache-spark dataset


    【解决方案1】:

    你可以做平面地图:

    val df = Seq(Seq(1, 2, 3), Seq(4, 5, 6, 7)).toDF("s").as[Seq[Int]];
    df.flatMap(x => x.toList)
    

    你也可以试试explode功能:

    df.select(explode('s)).select("col.*").as[Car]
    

    完整示例:

    import org.apache.spark.sql.functions._
    case class Car(i : Int);
    val df = Seq(List(Car(1), Car(2), Car(3))).toDF("s").as[List[Car]];
    val df1 = df.flatMap(x  => x.toList)
    val df2 = df.select(explode('s)).select("col.*").as[Car]
    

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 2020-10-21
      • 2018-08-20
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多