我要运行这个简单的查询,我想并行化它:
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
。