df = spark.read.format('csv').load('...')

Насколько я понимаю, load - это преобразование, которое выполняется только при вызове действия. Однако пока выполняется инструкция load, она выглядит как действие в пользовательском интерфейсе Spark.

Редактировать:

Из комментариев / ответов я сделал вывод, что загрузка может быть преобразованием, а может и не быть, но не определенно действием, которое замечательно и понятно.

Если это не действие, зачем он создает группу DAG? Он создает группу DAG только для оператора загрузки, а не только для WholeStageCodegen (который находится на вкладке SQL). См. Изображение ниже: Снимок экрана

3
j raj 15 Окт 2019 в 13:56
Это трансформация
 – 
pissall
15 Окт 2019 в 13:57
1
 – 
thebluephantom
15 Окт 2019 в 14:25
Спасибо за ответ. По общей ссылке я вижу, что это преобразование, и для его выполнения требуется некоторое время, потому что выполняется проверка метаданных и все такое. Еще один мой вопрос остается без ответа. Почему простой оператор загрузки создает группу DAG, чего не должно происходить.
 – 
j raj
15 Окт 2019 в 14:41
То, что находится под пользовательским интерфейсом, - это просто WholeStageCodegen, а не действие. Ваш вопрос не так уж конкретно связан с вашим комментарием. Я допускаю, что гнида немного расплывчата. См. Одобренный ответ по ссылке, хотя он тоже расплывчатый.
 – 
thebluephantom
15 Окт 2019 в 15:43
Вам следует задать новый вопрос.
 – 
thebluephantom
15 Окт 2019 в 18:10

2 ответа

В частности, на основании ваших комментариев:

Загрузка ничего не делает. Это просто часть API sqlContext.read или spark.read.format в качестве параметра, который может быть установлен косвенно или непосредственно при чтении. read позволяет указать форматы данных.

Как говорится, DF или лежащий в основе RDD оценивается лениво.

1
thebluephantom 15 Окт 2019 в 14:57

Загрузка - это ни действие, ни преобразование, это метод класса DataFrameReader, который описывает, как загружать данные из внешнего источника данных.

Все методы DataFrameReader просто описывают процесс загрузки данных и не запускают задание Spark (до тех пор, пока не будет вызвано действие).

Об этом упоминает jaceklaskowski. Прочтите https: // jaceklaskowski .gitbooks.io / mastering-spark-sql / spark-sql-DataFrameReader.html # methods.

Вы также можете сослаться на список API преобразований и действий из блоков данных здесь Загрузка https://training.databricks.com/visualapi.pdf нигде не упоминается как трансформация или действие

0
Strick 15 Окт 2019 в 15:32