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



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

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 中。

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

相关内容

最新更新