Spark - сделать преобразования также включают в себя операции драйвера - PullRequest
0 голосов
/ 26 августа 2018

В моих примечаниях к курсу есть следующее предложение: «СДР поддерживают два типа операций: преобразования, которые создают новый набор данных из существующего, и действия, которые возвращают значение программе драйвера после выполнения вычисления в наборе данных."Но я думаю, что это вводит в заблуждение, потому что преобразование lowerByKey выполняется локально на рабочих, а затем и на драйвере (хотя изменение не происходит, пока не будет выполнено действие).Не могли бы вы исправить меня, если я ошибаюсь.

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Вот понятия

В Spark Transformation определяет, где один RDD генерирует один или несколько RDD.Каждый раз, когда создается новый СДР.СДР являются неизменяемыми, поэтому любое преобразование на одном СДР генерирует новый СДР и добавляется в DAG.

Действие в искре - это функция, при которой новые СДР не генерируются, генерируются другие типы данных, такие как String, int и т. Д., И результатвозвращается в драйвер или другую систему хранения.

Преобразования имеют ленивый характер и ничего не происходит до тех пор, пока не будет запущено действие.

reduByKey - это преобразование, поскольку оно генерирует RDD из входного RDD и его aШИРОКАЯ ТРАНСФОРМАЦИЯ.При уменьшении по ключу ничего не происходит, пока не сработаетСм. Изображение ниже

enter image description here

уменьшите - это действие, поскольку оно генерирует тип не RDD.Пожалуйста, смотрите изображение ниже

enter image description here

0 голосов
/ 26 августа 2018

На самом деле, первая обязанность водителя - это управление работой.Кроме того, объекты RDD не расположены на драйвере, чтобы воздействовать на них.Итак, все результаты на рабочих, пока не настанут череды действий.Дело в том, что я имею в виду ленивое выполнение spark, это означает, что вначале выполнения план пересматривается до первого действия, и если он не может его найти, то вся программа ничего не даст.В противном случае вся программа будет выполняться на входных данных, которые будут представлены в виде объекта rdd на рабочих узлах для достижения действия, и все данные в течение этого периода будут все на рабочих и только результат в соответствии с типом действиябудет отправлен водителю или хотя бы управляется им.

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