【发布时间】:2012-08-14 22:05:37
【问题描述】:
我正在尝试从并行集合转换回常规地图。根据 api,如果我在任何适当定义的并行集合上调用 toMap,它应该返回一个标准 Map,但它在一个扁平化的迭代集合上返回 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]。
谁能告诉我这是为什么?并且(出于好奇)当 scala 不允许我时,如何强制将 ParMap 转换为 Map?
【问题讨论】:
标签: scala parallel-processing scala-collections