【问题标题】:Scalding convert one row into multiple烫伤将一行转换为多行
【发布时间】:2015-05-01 21:39:47
【问题描述】:

所以,我有一个包含表单条目的滚烫管道 (字符串,地图[字符串,整数])。我需要将此行的每个实例转换为多行。也就是说,如果我有

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

我需要输出 3 行

("A 型", "a1", 2)

("A 型", "a2", 2)

("A 型", "a3", 3)

我猜它基本上是 groupBy 操作的逆操作。有谁知道这样做的方法吗?

【问题讨论】:

    标签: mapreduce scalding


    【解决方案1】:

    你可以使用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])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多