scala在运行List.par.aggregate时挂起

时间:2018-04-14 02:19:18

标签: scala aggregation

当我尝试在REPL中运行以下代码时,它会挂起。当我删除并行'par'时,它能够进行评估。就斯卡拉地而言,我完全是诺布。该程序正在尝试对事件进行计数。我知道还有其他方法可以产生相同的值,但我想知道为什么它不起作用。

val hashMap = new java.util.concurrent.ConcurrentHashMap[String, Int]()
val s = Seq("apple", "oranges", "apple", "banana", "apple", "oranges", "oranges")
s.par.aggregate(hashMap) ( (m, x) => {m.put(x, m.getOrDefault(x, 0) + 1); m}, (x,y) => x)
// the code above hangs
s.aggregate(hashMap) ( (m, x) => {m.put(x, m.getOrDefault(x, 0) + 1); m}, (x,y) => x)
//this works

有人可以帮帮我吗?提前致谢

0 个答案:

没有答案