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()

Другие вопросы по тегам