为什么在ParSeq中没有sortBy方法,尽管Seq中有一个方法?

时间:2014-04-01 14:29:51

标签: scala scala-collections

我有这个简单的查询要运行,我想并行化它:

val res : Array[Int] = valuesRand
.groupBy(v => v)
.toSeq
.sortBy(_._1)
.map(_._2.size)
.toArray

以下是我的查询的性能等同物吗?

val res : Array[Int] = valuesRand
.par
.groupBy(v => v)
.par
.toIndexedSeq
.sortBy(_._1)
.map(_._2.size)
.toArray

我问的是,因为我无法在ParSeq中找到sortBy方法,尽管它存在于Seq中。

1 个答案:

答案 0 :(得分:1)

ParSeq类不直接扩展SeqLike,它提供sortBy。您可以从ParSeqLike

的定义中看到这一点
trait ParSeqLike[+T, +Repr <: ParSeq[T], +Sequential <: scala.Seq[T] with SeqLike[T, Sequential]] extends GenSeqLike[T, Repr] with ParIterableLike[T, Repr, Sequential]

ParSeq通过

延伸
ParSeqLike[T, ParSeq[T], scala.Seq[T]]

因此,只有底层实现中的Splitter才能执行sortBy,这对您没有任何帮助。