Я хочу понять, как оптимизировать спарк для нескольких запросов.
Вот простой случай: предположим, у меня есть базовая таблица: 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 или таблице?