W ten sposób nie można bezpośrednio odpytywać RDD. Pomyśl o swojej pracy w Spark jak o procesorze strumieniowym. To, co możesz zrobić, to przekazać zaktualizowany model do jakiegoś „magazynu”, takiego jak baza danych (z niestandardowym interfejsem API lub JDBC), system plików lub pamięć podręczna. Możesz nawet wykonać wywołanie usługi sieciowej z poziomu kodu Spark.
Cokolwiek robisz, uważaj, aby czas przetwarzania każdej partii danych, w tym operacji we/wy, był znacznie niższy od określonego przedziału czasu. W przeciwnym razie ryzykujesz wąskie gardła, które mogą w końcu ulec awarii.
Inną rzeczą, na którą należy zwrócić uwagę, jest przypadek, w którym dane modelu znajdują się w więcej niż jednej partycji RDD rozmieszczonej w klastrze (co jest oczywiście ustawieniem domyślnym). Jeśli kolejność twoich „rekordów” nie ma znaczenia, to pisanie ich równolegle jest w porządku. Jeśli potrzebujesz określonej kolejności całkowitej wypisanej sekwencyjnie (a dane naprawdę nie są duże), zadzwoń do collect
aby umieścić je w jednej strukturze danych w pamięci w kodzie sterownika (co będzie oznaczać ruch sieciowy w rozproszonym zadaniu), a następnie napisz stamtąd.