Spark Job-сервер освобождает память
Я установил спарк-сервер заданий (см. https://github.com/spark-jobserver/spark-jobserver/tree/jobserver-0.6.2-spark-1.6.1) в автономном режиме.
Я создал контекст по умолчанию для использования. В настоящее время у меня есть 2 вида работ в этом контексте:
- Синхронизация с другим сервером:
- Сбрасывает данные из базы данных другого сервера;
- Выполните несколько объединений, уменьшите данные, создав новый DF;
- Сохраните полученный DF в файле паркета;
- Загрузите этот файл паркета как временную таблицу и кэшируйте его;
- Запросы: выполнять SQL-запросы к кэшированной таблице.
Единственный объект, который я сохраняю - это финальная таблица, которая будет кэшироваться.
Чего я не понимаю, так это того, что когда я выполняю синхронизацию, вся назначенная память используется и никогда не освобождается, но, если я загружаю файл паркета напрямую (при новом запуске сервера, используя ранее созданный файл паркета), используется только часть памяти.
Я что-то упустил? Есть способ освободить неиспользуемую память?
Спасибо
1 ответ
Вы можете освободить память, не сохраняя в кэше таблицу: yourTable.unpersist()