В чем разница между «предикатным нажатием» и «проекционным нажатием»? - PullRequest
0 голосов
/ 04 октября 2019

Я столкнулся с несколькими источниками информации, такими как найденный здесь , который объясняет «предикатное нажатие» как:

… если вы можете «нажать вниз»части запроса, где хранятся данные, и, таким образом, отфильтровывают большую часть данных, тогда вы можете значительно сократить сетевой трафик.

Однако я также видел термин «проекционное нажатие» вдругая документация, такая как здесь , которая выглядит так же, но я не уверен в своем понимании.

Есть ли конкретная разница между этими двумя терминами?

1 Ответ

1 голос
/ 04 октября 2019

Предикат относится к предложению where / filter, которое влияет на количество возвращаемых строк.

Проекция относится к выбранным столбцам.

Например:

Если ваши фильтрыпропустите только 5% строк, только 5% таблицы будут переданы из хранилища в Spark вместо полной таблицы.

Если ваша проекция выберет только 3 столбца из 10, то будет меньше столбцовпередается из хранилища в Spark, и если ваше хранилище является столбчатым (например, Parquet, а не Avro), а невыбранные столбцы не являются частью фильтра, то эти столбцы даже не нужно читать.

...