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.
i'm tempted to either remove the python version first because as it is implemented it doesn't provide any performance benefits when compared with what users can also do.