2016-12-26 2 views
1

Я изучаю искру 2.0 java api и сомневаюсь относительно collect() & collectAsync() доступно для javardd.В чем разница между методами искры javardd collect() & collectAsync()?

+0

'collect()' возвращает список элементов в RDD сразу. 'collectAsync()' дает будущий объект из этого элемента может быть восстановлен. – mrsrinivas

+0

Привет @JaydeepRameshDeshmukh, если какой-либо ответ ниже ответов разрешил ваш вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419), нажав на галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. Это не обязательно. – mrsrinivas

ответ

1

Собрать действие в основном используется для просмотра содержимого RDD, в основном это синхронно, в то время как collectAsync() является асинхронным, что означает его Возврат в будущее для извлечения всех элементов этого RDD. он позволяет запускать другой RDD для параллельной работы. для лучшей оптимизации вы можете использовать справедливый планировщик для планирования работы.

1

собирать():

Он возвращает массив, содержащий все элементы в этом РДУ.

List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); 
JavaRDD<Integer> rdd = sc.parallelize(data, 1); 
List<Integer> result = rdd.collect(); 
//elements in will be copied to driver in above step and control will 
//wait till the action completes 

collectAsync():

асинхронная версия collect, который возвращает Future (java.util.concurrent.Future) для получения массива, содержащего все элементы в этом RDD.

List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); 
JavaRDD<Integer> rdd = sc.parallelize(data, 1); 
JavaFutureAction<List<Integer>> future = rdd.collectAsync(); 
// retuns only future object but not data (no latency here) 

List<Integer> result = future.get(); 
//Now elements in will be copied to driver 

Мы видим различия в том, как мы получаем данные только ли синхронная (будет нити ждать, пока действие завершается в collect()) или асинхронной (нити получит Future объекта и перейти к следующей инструкции)

Смежные вопросы