Я пытаюсь обратно преобразовать параллельную коллекцию в обычную карту. Согласно API, если я вызываю toMap для любой соответствующим образом определенной параллельной коллекции, она должна возвращать стандартную карту, но возвращает ParMap поверх сглаженной коллекции итерируемых объектов.
У меня есть
val task: Stream[Future[Iterable[Tuple2[String, String]]]]
И откуда я получаю:
val res: ParSeq[Iterable[Tuple2[String, String]]] = tasks.par.map(f => f.apply())
Наконец:
val finalresult = res.flatten.toMap
К сожалению, тип finalresult
— ParMap[String, String]
.
С другой стороны, если я назову это как:
tasks.par.map(f => f.apply()).reduce(_++_).toMap
то возвращаемый тип — Map[String, String]
.
Может кто-нибудь сказать мне, почему это так? И (из любопытства ), как я могу принудительно преобразовать ParMap
в Map
, когда scala мне не позволяет?