Никогда не collect гигантский DF; для sample — take/limit/approxQuantile; агрегаты считать на кластере; результаты наружу — write в таблицу/объектное хранилище.
Разбор
- Даже take(100) после expensive join всё равно считает join.
- Driver memory sizing не для датасетов.
- toPandas() = тот же риск.
- Алерты на попытки collect в линтере кода.
Итог
Наружу — write/агрегаты; collect только крошечных выборок.