【发布时间】:2018-01-25 03:46:33
【问题描述】:
如何将Dataset[Seq[T]] 转换为Dataset[T]?
例如,Dataset[Seq[Car]] 到 Dataset[Car]。
【问题讨论】:
标签: scala apache-spark dataset
如何将Dataset[Seq[T]] 转换为Dataset[T]?
例如,Dataset[Seq[Car]] 到 Dataset[Car]。
【问题讨论】:
标签: scala apache-spark dataset
你可以做平面地图:
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]
【讨论】: