Spark:按元组/列中的多个值对RDD进行排序

时间:2016-04-04 01:12:52

标签: apache-spark mapreduce rdd

所以我有一个RDD如下

RDD[(String, Int, String)]

作为一个例子

    ('b', 1, 'a')
    ('a', 1, 'b')
    ('a', 0, 'b')
    ('a', 0, 'a')

最终结果应该类似于

('a', 0, 'a')
('a', 0, 'b')
('a', 1, 'b')
('b', 1, 'a')

我该怎么做?

1 个答案:

答案 0 :(得分:5)

试试这个:

rdd.sortBy(r => r)

如果您想要切换排序顺序,可以这样做:

rdd.sortBy(r => (r._3, r._1, r._2))

对于逆序:

rdd.sortBy(r => r, false)