Правильный способ использования - с тремя косой чертой. Два для синтаксиса (например, http: //) и один для точки монтирования файловой системы Linux, например sc.textFile (файл: ///home/worker/data/my_file.txt). Если вы используете локальный режим, достаточно только файла. В случае автономного кластера файл должен быть скопирован на каждом узле. Обратите внимание, что содержимое файла должно быть точно таким же, иначе искра возвращает смешные результаты.
В первую очередь, flatMap - то же как mergeMap в Rxjs. Таким образом, это - один беспорядок меньше. Таким образом, существует два observables..
1) o1: простой список объектов от (['Kitty', 'Donald', 'Batman'])
2) process_o1 (): process_o1 () является функцией, которая берет в качестве одного параметра 'объект' и делает что-то с ним и возвращает Заметное, которое на завершении испускает 'сделанный с [объектом]'.
o1.pipe(mergeMap(item => process_o1(item))).subscribe(data => {
console.log(data);
});
Здесь мы собираемся видеть:-, сделанный с Kity.
сделанный с Donald.
сделанный с Batman.
без любой гарантии, что Kitty приезжает перед Donald и Donald, прибывает перед Batman. Это вызвано тем, что, как только внешнее заметное испускает объект, внутреннее заметное подписано.
===, Но в случае concatMap:-
o1.pipe(concatMap(item => process_o1(item))).subscribe(data => {
console.log(data);
});
у Нас есть гарантия ниже sequence:-
, сделанного с Kity.
сделанный с Donald.
сделанный с Batman.
, поскольку с concatMap оператором внутреннее Заметное не подписано перед предыдущими внутренними Заметными возвратами.
внешнее заметное свободно просто идти вперед и испустить все его значения, но concatMap удостоверится, что имеет дело с каждым из тех значений один за другим и поддерживает порядок. Отсюда имя concatMap.
В затруднении, если Вы увлечены поддержанием порядка выполнения вещей, необходимо использовать concatMap. Но если Вы не заботитесь о порядке, можно продолжить mergeMap, который будет подписываться на весь внутренний Observables сразу и продолжать испускать значения как и когда они возвратятся.