Оптимизирует ли Spark хранилище при кэшировании вложенного столбца - PullRequest
0 голосов
/ 02 октября 2018

Я читаю DataFrame из паркета и хочу кэшировать его после выбора некоторых вложенных структур.

df.select($"a.b.c" as "c").cache()

Я знаю, что весь столбец a будет считан из ввода (Spark 2.5 долженрешил, что: SPARK-17636 ), но мне интересно, будет ли хранилище более умным и будет храниться только результат выбора (поэтому не весь a).

1 Ответ

0 голосов
/ 02 октября 2018

Да, только результат выбора кэшируется после выполнения действия.Оператор select возвращает фрейм данных, то есть фрейм данных, который кэшируется.

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

df.select($"a.b.c" as "c").cache().count()
...