В чем разница между сокращением разделов в Spark и функцией Predicate Pushdown? - PullRequest
1 голос
/ 10 марта 2020

Я изучал методы оптимизации Spark и нашел разные способы реализации для достижения оптимизации. Но два имени привлекли мое внимание.

  1. Обрезка раздела
  2. Предикат Pushdown

Они говорят:

Обрезка раздела:

Сокращение разделов - это оптимизация производительности, которая ограничивает количество файлов и разделов, которые Spark читает при запросах. После разделения данных запросы, которые соответствуют определенным критериям фильтра разделения, повышают производительность, позволяя Spark читать только подмножество каталогов и файлов.

Предикат Pushdown:

Spark будет пытаться переместить фильтрацию данных как можно ближе к источнику, чтобы избежать загрузки ненужных данных в память. Файлы Parquet и OR C хранят различные статистические данные о каждом столбце в разных порциях данных (например, минимальные и максимальные значения). Программы, читающие эти файлы, могут использовать эти индексы, чтобы определить, нужно ли вообще читать определенные фрагменты и даже целые файлы. Это позволяет программам потенциально пропускать огромные части данных во время обработки.

Читая вышеупомянутые концепции, они, кажется, делают то же самое, что применяют операторы чтения (запросы), которые удовлетворяют предикатам. дано в запросе. Являются ли Pruning Partition Prunate и Predicate Pushdown разными концепциями или я смотрю на них неправильно?

1 Ответ

0 голосов
/ 11 марта 2020

Разница заключается в том, кто применяет оптимизацию, где применяется оптимизация и к каким источникам данных она может быть применена.

  • Сокращение раздела применяется самой Spark до ее делегирования источник данных, обрабатывающий формат файла. Это применимо только в случае файловых форматов, поскольку источники данных не имеют концепции обнаружения разделов (пока).

  • Предикат pu sh делегирует фильтрацию строк в источник данных, отвечающий за обработку определенного формата (термин Spark для типа источника данных). Предикат pu sh down доступен как для файловых, так и для не файловых источников, например, баз данных RDBMS и No SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...