使用sortBy按多个值排序

时间:2016-02-03 09:33:18

标签: scala apache-spark rdd

我想用它的第一个和第二个值对RDD[(Int,Int)]进行排序,以便有类似的东西。

[(1,1),(1,2),(1,3),(2,1),(2,2),(3,1)....]

我试过了

rdd.sortBy( x => (x._1,x._2) )

但即使它编译它似乎也不起作用,它只是按第一个值排序。

也许我可以将第一个排序的每个结果放在不同的分区中,然后对第二个值应用排序。

1 个答案:

答案 0 :(得分:2)

答案是

rdd.sortBy(x=>(x._1,x._2))

作品。

我完全忘记了我正在用foreach显示结果,以无序的方式显示rdd。 使用collect / take(n)结果后,我正在寻找。

所以要确保你的分类工作不使用

rdd.foreach(println)

但请使用

rdd.collect.foreach(println)