SPARK-2978. Transformation with MR shuffle semantics

I didn't add this to the transformations list in the docs because it's kind of obscure, but would be happy to do so if others think it would be helpful.
Or maybe the function is okay, but it's passing True for numPartitions. Yay dynamic typing.