【发布时间】:2015-05-01 21:39:47
【问题描述】:
所以,我有一个包含表单条目的滚烫管道 (字符串,地图[字符串,整数])。我需要将此行的每个实例转换为多行。也就是说,如果我有
( "A 型", ["a1" -> 2, "a2" ->2, "a3" -> 3])
我需要输出 3 行
("A 型", "a1", 2)
("A 型", "a2", 2)
("A 型", "a3", 3)
我猜它基本上是 groupBy 操作的逆操作。有谁知道这样做的方法吗?
【问题讨论】:
所以,我有一个包含表单条目的滚烫管道 (字符串,地图[字符串,整数])。我需要将此行的每个实例转换为多行。也就是说,如果我有
( "A 型", ["a1" -> 2, "a2" ->2, "a3" -> 3])
我需要输出 3 行
("A 型", "a1", 2)
("A 型", "a2", 2)
("A 型", "a3", 3)
我猜它基本上是 groupBy 操作的逆操作。有谁知道这样做的方法吗?
【问题讨论】:
你可以使用flatmap,像这样:
class TestJob(args: Args) extends Job(args)
{
val inputPipe: TypedPipe[Input]
val out: TypedPipe[(String, String, Int)]= inputPipe.flatMap { rec =>
rec.map.map{pair => (rec.kind, pair._1, pair._2)}
}
}
case class Input(kind: String, map: Map[String, Int])
【讨论】: