Это если оперативы совсем не хватило) А если вот прям чуть-чуть осталось, спарк пытается всеми силами освободить, надрывается и жрёт проц, сессия перестаёт отвечать при этом, потом когда оператива становится свободной, сессия так и висит зомбяком)
У нас в свое время был простой принцип: 1. Все пром процессы на мониторинге с ожидаемым временем завершения (не завершился - семафор) 2. Все интерактивные сессии (зепелину, шеллы, юпитеры) ночью автоматом убиваются 3. Если тебе нужно что-то оставить считаться в ночь - исключаешь свою сессию из киллера, но тогда если она создаст проблемы к тебе придут.
Если посмотреть физический план запроса с csv, где есть срез - там будет predicate pushdown. Но наличие PredicatePushdown в чтении источника еще не означает, что он используется
Иными словами, когда есть predicate pushdown, то фактически фильтрация будет делаться два раза - внутри источника и спарком при применении оператора Filter