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

adr*_*ian 2 mapreduce apache-spark rdd

所以我有一个RDD如下

RDD[(String, Int, String)]
Run Code Online (Sandbox Code Playgroud)

并举一个例子

    ('b', 1, 'a')
    ('a', 1, 'b')
    ('a', 0, 'b')
    ('a', 0, 'a')
Run Code Online (Sandbox Code Playgroud)

最终结果应该类似于

('a', 0, 'a')
('a', 0, 'b')
('a', 1, 'b')
('b', 1, 'a')
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Dav*_*fin 5

尝试这个:

rdd.sortBy(r => r)
Run Code Online (Sandbox Code Playgroud)

如果要切换排序顺序,可以执行以下操作:

rdd.sortBy(r => (r._3, r._1, r._2))
Run Code Online (Sandbox Code Playgroud)

对于逆序:

rdd.sortBy(r => r, false)
Run Code Online (Sandbox Code Playgroud)