У меня есть файл .ipynb
, который запрашивает базу данных MSSQL. Запросы выполняют три оператора SQL, которые считываются в три pandas
кадра данных с размерами [56.68, 1870.47, 177.53]
Мб, соответственно. Все данные считываются в одном файле *.py
. Моя машина работает под управлением Win10 и имеет 32 ГБ доступной оперативной памяти.
Когда я работаю с интерактивными VSCode и Python, я могу импортировать свой модуль без проблем. Запрос базы данных и передача данных занимает некоторое время,> 5 минут (в зависимости от соединения). После чтения всех трех наборов данных VSCode потребляет ~ 6000 МБ ОЗУ. Это отлично. Я также могу запустить ячейку в VSCode из файла .ipynb
, который содержит оператор import...
без проблем, за исключением времени, которое требуется для запроса / получения данных.
Однако, если я запускаю все ячейки в файле *.ipynb
через графический интерфейс Jupyter Lab, я получаю «Ошибка памяти:
Я получаю ту же «ошибку памяти», когда обновляю файл jupyter_notebook_config.py
, добавляя в него строку c.NotebookApp.max_buffer_size = 250000000000
, обновляющую то, что я думал, было выделение памяти для Jupyter с ~ .5Mb до 25Gb.
Аналогично, когда я пытаюсь преобразовать файл из CLI с помощью jupyter nbconvert --execute --ExecutePreprocessor.timeout=-1 [ipynb]
(мой предпочтительный рабочий процесс), я получаю еще один странно отформатированный «MemoryError», который при ближайшем рассмотрении выглядит идентично ошибке, которую я получаю из графического интерфейса Jupyter Lab:
Что здесь происходит? Почему я могу читать файлы данных через Python Interactive без проблем, но когда я пытаюсь прочитать их черезJupyter GUI или выполнить их через nbconvert
, что-то не так? Я бы ожидал, что все, что запускается в терминале Python или в Python Interactive, будет идентичным Jupyter или через nbconvert
. Очевидно, я ошибаюсь.