Scala 如何对RDD进行排序?

Scala 如何对RDD进行排序?,scala,sorting,apache-spark,Scala,Sorting,Apache Spark,我是Spark和Scala的初学者。这是我3天后终于得到的RDD: ((null,18),1) ((null,17),1) ((null,16),1) ((AK,14),2) ((Lo,6),1) ((Re,7),1) ((4x,10),1) ((null,12),4) ((Re,13),1) ((Mu,19),1) ((Lo,19),2) ((null,8),1) ((null,20),3) 我应该对这个RDD进行排序,以便一种类型的所有值都按升序分组在一起。例如:

我是Spark和Scala的初学者。这是我3天后终于得到的RDD:

((null,18),1)

((null,17),1)

((null,16),1)

((AK,14),2)

((Lo,6),1)

((Re,7),1)

((4x,10),1)

((null,12),4)

((Re,13),1)

((Mu,19),1)

((Lo,19),2)

((null,8),1)

((null,20),3)
我应该对这个RDD进行排序,以便一种类型的所有值都按升序分组在一起。例如:

((null,8),1)

((null,12),4)

((null,16),1)

((null,17),1)

((null,18),1)

((null,20),3)

((Lo,6),1)

((Lo,19),2)

我不知道从何处查找或如何开始。

可以使用
排序方法对
RDD
进行排序,例如:

val rdd: RDD[((String, Int), Int)] = ??? // your RDD
rdd.sortBy(_._1) // sort by the first item in the pair
考虑到您正在使用配对,还可以使用
sortByKey
方法:

rdd.sortByKey()

由于Tuple2键中有空值,因此尝试排序将导致nullpointerexception。