Как бороться с трудоемким методом, предоставляемым JavaRDD - take ()
Instant startInit = Instant.now();
JavaRDD<Foo> fooJavaRDD = listOfFoo.parallize.map(new Foo()).sortBy(a -> a.sortRule(), true, NoPartitions);
Instant stopInit = Instant.now();
Instant startTake = Instant.now();
List<Foo> fooList = fooJavaRDD.take(1);
Instant stopTake = Instant.now();
System.out.println("Init: " + Duration.between(startInit, stopInit).toMillis());
System.out.println("Take: " + Duration.between(startTake, stopTake).toMillis());
Вывод, который я получаю (в миллисекундах):
Init: 417
Take: 1322
Странно, что парализующий, карта и сортировка не так трудоемки, как take ().
Может быть, есть другой способ получить лучший результат из map ()?