Проблема не в том, что сортировка не работала, а в том, что вы println()
вызывали foreach
на СДР - эта операция выполняется параллельно на всех разделах.
И на реальном кластере (не в локальной среде разработки) вы даже не увидите напечатанные строки, потому что это произойдет на JVM исполнителей .
RDD отсортировано, но если вы не хотите верить мне (это было бы разумно) , тогда вы можете выполнить collect
до foreach
, который сначала извлечет все результаты для драйвера, а затем напечатает их (он извлечет их в том порядке, в котором они находятся) .