22
Anti-Patterns: Как убить кластер за 5 минут
Разбор 8 классических ошибок Spark-разработки: collect(), explode, repartition, кэш без unpersist, UDF-closure, shuffle-взрыв, inferSchema в продакшне и случайные Cartesian joins.
optimization
core
Контрольные задания
✓
Найти collect() в production-коде и исправить
✓
Переписать explode + groupBy без промежуточного взрыва строк
✓
Профилировать UDF и заменить на built-in функцию
✓
Найти случайный Cartesian в EXPLAIN и устранить
Уроки модуля
1
collect() и toPandas(): когда весь датасет едет в Driver
2
explode() misuse: N×M взрыв строк и когда использовать flatten
3
repartition() abuse и coalesce(): когда shuffle нужен, а когда нет
4
Кэш без стратегии: persist до фильтрации, нет unpersist и cache в цикле
5
UDF Pitfalls: closure, null без защиты и non-determinism
6
Shuffle Explosion: COUNT DISTINCT, множественный GROUP BY и sort без причины
7
Schema Anti-Patterns: inferSchema в продакшне, вложенные структуры и from_json без схемы
8
Cartesian Join Trap: случайный cross join, BNLJ на TB и non-equi join ловушки