Сортировать по нескольким значениям с помощью sortBy

Я хотел бы отсортировать RDD[(Int,Int)] по первому и второму значению, чтобы иметь что-то подобное.

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

Я пробовал это

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

Но, похоже, он не работает, даже если он компилируется, он сортируется только по первому значению.

Возможно, я мог бы поместить каждый результат первой сортировки в другой раздел, а затем применить сортировку ко второму значению.

1 ответ

Ответ в том, что

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

работает.

Я полностью забываю, что я отображал результат с foreach, который отображает rdd неупорядоченным образом. После использования команды collect/take(n) я получил то, что искал.

Поэтому, чтобы убедиться, что ваши сортировочные работы НЕ используют

rdd.foreach(println)

Но использовать

rdd.collect.foreach(println)
Другие вопросы по тегам