Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 按特定列分组_Algorithm_Scala - Fatal编程技术网

Algorithm 按特定列分组

Algorithm 按特定列分组,algorithm,scala,Algorithm,Scala,scala新手,在地图和列表方面有困难,这与java不同,比如说我有一个scala函数,它提供数据库中的记录,这些记录的格式如下所示 id owner_id type_id name value 让我们把它命名为 case class Row(id: UUID, ownerId: UUID, typeId: UUID, name: String, value: String) 现在我想写一个函数,将这些行作为输入,在Scala中生成一个映射,如下所示,有人能帮我做一个函数吗 { "own

scala新手,在地图和列表方面有困难,这与java不同,比如说我有一个scala函数,它提供数据库中的记录,这些记录的格式如下所示

id owner_id type_id name value
让我们把它命名为

case class Row(id: UUID, ownerId: UUID, typeId: UUID, name: String, value: String)
现在我想写一个函数,将这些行作为输入,在Scala中生成一个映射,如下所示,有人能帮我做一个函数吗

{
  "owner": "ownerId",
  "configurations": {
    "type1": {
      "name1": "value1",
      "name2": "value2"
    },
    "type2": {
      "name3": "value3",
      "name4": "value4"
    }
  }
}

假设此结果类型

case class Data(owner: UUID, configurations: Map[UUID, Map[String, String]])
我还没有对此进行测试,但这可能会用于获取
配置
字段。由于有多行,我不确定如何用一个值填充
owner
字段

def convert(rows: Seq[Row]): Data =
  Data(owner = ???,
       configurations = rows.groupMapReduce(_.typeId)(r => Map(r.name -> r.value))(_ ++ _))

这将使用
Seq
中的函数,该函数将首先根据
typeId
对所有行进行分组。然后,它将每一行
r
映射到一个
map
,其中一个条目
name
映射到
value
<代码>++将组合所有这些小的
映射。

这看起来像是一个json对象,而不是映射。