Catalyst — инфраструктура анализа и оптимизации запросов Spark SQL/DataFrame. Она преобразует логический план и помогает выбрать эффективный физический план.
Что такое Catalyst optimizer в Spark и какие конкретные примеры оптимизаций он делает (например, predicate pushdown)?
Catalyst — инфраструктура анализа и оптимизации запросов Spark SQL/DataFrame. Она преобразует логический план и помогает выбрать эффективный физический план.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Catalyst — инфраструктура анализа и оптимизации запросов Spark SQL/DataFrame. Она преобразует логический план и помогает выбрать эффективный физический план.
Примеры: свёртка констант, удаление ненужных столбцов, перенос фильтров ближе к источнику и упрощение выражений. Predicate pushdown позволяет поддерживающему источнику отбирать строки раньше; column pruning уменьшает объём чтения.
Оптимизация зависит от источника, статистики и доступности выражений для анализа. Произвольная Python UDF может ограничить преобразования. Проверяйте результат через explain: наличие фильтра в коде ещё не гарантирует, что источник выполнил его сам. AQE дополнительно корректирует план во время исполнения.
Источник: Документация Apache Kafka.