As you go explicitly from sequential to parallel collection via .par
, you go back to sequential via .seq
. Since sets and maps have parallel implementations, toMap
and toSet
calls leave the collection in the current domain.
The example of reduce
works because it, well, reduces the collection (the outer ParSeq
disappears, leaving you with the inner (sequential) Iterable[Tuple2[...]]
).