如何使用平面图分解数据集?

How do I explode a dataset with flatmap?

我有一个案例序列 class,它有一个字符串,后跟一个字符串序列。如何在不丢失第一列的情况下平面化字符串序列(第二列)?

我试过这个:

flatmap(_.second)

但在这种情况下,我丢失了第一列。

这是我的代码:

case class A(
            first:String,
            second:Seq[String]
            )

val ds = Seq(
  A("1", Seq("A","B")),
  A("2",  Seq("C"))
) toDS

分解第二个col并保留第一个col的有效方法是flatMap :

ds.flatMap{ case A(a,b) => b.map((a,_)) }

应该输出:

+---+---+
| _1| _2|
+---+---+
|  1|  A|
|  1|  B|
|  2|  C|
+---+---+