Эликсир жизни для Jupyter
Рассмотрим способ повышения комфорта работы в среде Jupyter при обработке больших объемов информации. Речь идет о наболевшей ситуации, когда после долгих ресурсоемких вычислений требуется прервать сессию, однако особого желания повторять вычисления не возникает. Решить эти проблемы поможет библиотека dill, которая сохраняет состояние и позволяет загрузить его снова. Одновременно становится возможным делиться сессией и восстанавливать ее на другом компьютере.
Устанавливает библиотека просто с помощью менеджера пакетов pip:
!pip install dill
Теперь перейдем к применению. Сначала создадим демонстрационные данные:
import pandas as pd import numpy as np a = [1,2,3] b = 'str' c = np.random.normal(0,5, size=10) df = pd.DataFrame([2,3,4])
Сохранение сессии осуществляется функцией dump_session, которая получает имя файла:
import dill dill.dump_session('checkpoint.db')
Затем для восстановления вызывается функция load_session с именем файла с сессией:
import dill dill.load_session('checkpoint.db')
Для проверки работы сначала сделаем рестарт ядра и попробуем запустить ячейку с обращение к переменной:
import dill dill.load_session('checkpoint.db') c
Следует упомянуть, что под капотом dill использует pickle и следовательно не является безопасным форматом для передачи данных по сети. Ее использование целесообразно в случае полной уверенности, что файл не подвергнут вмешательству злоумышленника.