Повторяющиеся задания создаются в DAG для того же действия в Spark - PullRequest
0 голосов
/ 03 июня 2019

У меня есть задание потоковой передачи, в котором я получаю данные из очереди сообщений и обрабатываю несколько записей. В процессе у меня есть метод take () для набора данных. Хотя действие take происходит ожидаемым образом, в визуализации DAG я вижу несколько созданных идентификаторов заданий, и все они имеют одно и то же take action . Это происходит только тогда, когда данные имеют порядок сотен тысяч записей. Я не наблюдал избыточных заданий при работе с десятками записей на моем локальном компьютере. Может ли кто-нибудь помочь мне понять причины такого поведения?

DAG

Идентификаторы заданий - (от 91 до 95) в основном выполняют одно и то же действие . Ниже приведен фрагмент кода, соответствующий вышеуказанному действию.

val corruptedMessageArray: Array[ String ] = corruptedMessageDs.take(1);
    if ( !corruptedMessageArray.isEmpty ) {
        val firstCorruptedMessage: String = corruptedMessageArray( 0 )
    }

1 Ответ

0 голосов
/ 03 июня 2019

Похоже, у вас вопрос: созданы ли дублирующиеся задания Spark.

Если вы посмотрите на скриншот, то увидите, что задания имеют разное количество задач, поэтому дублирование не является простым.

Я не уверен, что именно происходит, но кажется, что для больших наборов данных take() требуется несколько быстрых последующих заданий. Возможно, потому что он разрабатывает работу, или, возможно, потому что он должен попытаться определить, сколько работы нужно сделать.

...