Classificação explícita na transformação cartesiana no Scala Spark

Estou usando a transformação cartesiana no Spark Scala. Se minha entrada for composta por 4 elementos (podem ser números / caracteres / tupla), diga

var myRDD=sc.parallelize(Array("e1","e2","e3","e4"))

myRDD.cartesian (myRDD) produziria todas as combinações possíveis de pares, mas não necessariamente em ordem. Qual é uma maneira inteligente de colocar esses pares em ordem? isto é

Array((e1,e1), (e1,e2), (e1,e3), (e1,e4), (e2,e1), (e2,e2), (e2,e3), (e2,e4), (e3,e1), (e3,e2), (e3,e3), (e3,e4), (e4,e1), (e4,e2), (e4,e3), (e4,e4))

questionAnswers(2)

yourAnswerToTheQuestion