如何使用平面图分解数据集?
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|
+---+---+
我有一个案例序列 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|
+---+---+