Является ли порядок выполнения Spark DAG параллельным или последовательным? - PullRequest
0 голосов
/ 21 сентября 2018

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

Dataset1 = source1.load;

Dataset2 = source2.load;

Будет ли Spark загружать данные параллельно в разные наборы данных или будет загружаться последовательно?

1 Ответ

0 голосов
/ 21 сентября 2018

Действия происходят последовательно.Ваше утверждение ... будет параллельно загружаться в разные наборы данных ... имеет такой же ответ последовательно, как и Действия .

Конвейеры данных , необходимые для Действия , включая Преобразования , происходят параллельно, где это возможно.Например, создание Фрейма данных с 4-мя нагрузками, которые, например, должны быть объединены, приведет к тому, что эти нагрузки будут выполняться параллельно, при условии, что может быть выделено достаточное количество исполнителей (слотов).

Итак, как говорится в комментарии, вытребуется действие и путь DAG определит поток и любой параллелизм , который можно применить.Вы можете видеть это в интерфейсе Spark.

Для демонстрации:

rdd1 = get some data
rdd2 = get some other data
rdd3 = get some other other data
rddA = rdd1 union rdd2 union rdd3
rddA.toDF.write ...

// followed by 

rdd1' = get some data
rdd2' = get some other data
rdd3' = get some other other data
rddA' = rdd1 union rdd2 union rdd3
rddA'.toDF.write ...

rddA'.toDF.write ... произойдет после rddA.toDF.write ... Ни один из rdd1'and rdd2' и rdd3 'Преобразования происходят параллельно с rddA.toDF.write' Transformations / Action.Этого не может быть.Это означает, что если вы хотите записать параллелизм, вам нужны два отдельных приложения SPARK - запущенные одновременно - если это предусмотрено ресурсами, конечно.

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