Спарк SQL делает оптимизации по запросам? - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу понять, как оптимизировать спарк для нескольких запросов.

Вот простой случай: предположим, у меня есть базовая таблица: table1,

Я пишу две очереди:

spark.sql("create view1 as select * from table1")
spark.sql("create view2 as select col1, col2 from view1")
spark.sql("select * from view2).collect()

В этом случае, будет ли спарк понять, что мне нужны только col1 и col2 из view1 и, таким образом, table1, и выполнить ли соответствующее проецирование вниз для table1 для сканирования меньшего количества данных?

В общем, скажем, я создал цепочка представлений, использующая отдельные запросы SQL и т. д., будет ли пытаться выполнить оптимизацию, такую ​​как проекция и предикатное отслеживание нажатия, обратно к представлению root или таблице?

...