Как работает ленивая структура данных - PullRequest
0 голосов
/ 11 апреля 2020

Есть некоторые сомнения по поводу action and transformation в Spark.

Я использую API-интерфейс spark из последних двух месяцев. (Learned) Spark api обладает способностью, которая говорит о том, что он не будет загружать какие-либо данные в память до тех пор, пока не будут предприняты какие-либо действия для сохранения где-либо окончательно преобразованных данных. Это правильное понимание?

Более уточненное определение:

Spark создаст DAG (Directed Acycli c Graph), используя applied operation, source RDD and function used for transformation. И он будет продолжать строить этот граф, используя ссылки, пока вы не примените какую-либо операцию к последнему выстроенному RDD. Вот почему преобразования в Spark являются ленивыми.

В тот момент, когда запускается действие (например, запись в файл), данные начинают загружаться в память из источника, а затем преобразуются и, наконец, записываются в файл. Это правильное значение action? ИЛИ Действие - это что-то, когда программа драйвера отправляет transformation and action graph мастеру, а затем мастер отправляет уважаемые data and code различным рабочим узлам для выполнения? Какой из них является правильным пониманием?

Прочитал онлайн-сообщения, но не очищен.

1 Ответ

1 голос
/ 12 апреля 2020

Вы правы, spark не будет ничего делать до тех пор, пока не будут предприняты определенные действия (например, запись).

Каждое преобразование вернет новый RDD, содержащий его * s DAG and when you submit an action, spark will execute the DAG (If you use dataset it Я также проведу оптимизацию).

Действие - это метод, который отправляет группу обеспечения доступности баз данных, как сказано (запись в файл / foreach и другие действия).

Драйвер - это ответ, чтобы парализовать работу, поддерживать работу исполнителей и отправлять им задания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...