滚烫将一排变成多排

Scalding convert one row into multiple

所以,我有一个烫管,其中包含以下形式的条目 (字符串,映射[字符串,整数])。我需要将此行的每个实例转换为多行。也就是说,如果我有

( "Type A", ["a1" -> 2, "a2" ->2, "a3" -> 3] )

我需要输出 3 行

("Type A", "a1", 2)

("Type A", "a2", 2)

("Type 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])