通过不键入类型,不匹配错误来激发组



我试图使此变量GroupsByP具有某些类型:GroupsByP是从DB Connection Select/Collect语句中定义的,该语句具有3个字段:2个字符串(pid)和一个INT(order)。

预期结果应为Map[p,Set[(Id,Order)]]

的形式
val GroupsByP = db.pLinkGroups.collect()
  .groupBy(_.p)
  .map(group => group._1 -> (group._2.map(_.Id -> group._2.map(_.Order)).toSet))

我对此变量的所需类型是

Map[String, Set[(String, Int)]]

,但实际是Map[String, Set[(String, Array[Int])]],

如果我有正确的问题,这应该做到:

 val GroupsByP: Map[String, Set[(String, Int)]] = input.collect()
    .groupBy(_.p)
    .map(group => group._1 -> group._2.map(record => (record.Id, record.Order)).toSet)

您应该将每个记录映射到(Id, Order)元组中。

非常相似但可能更可读的实现可能是:

val GroupsByP: Map[String, Set[(String, Int)]] = input.collect()
    .groupBy(_.p)
    .mapValues(_.map(record => (record.Id, record.Order)).toSet)

相关内容

  • 没有找到相关文章

最新更新