Как я могу остановить блокнот DataBricks, ссылающийся на старые версии моих яичных файлов? - PullRequest
0 голосов
/ 21 сентября 2018

В DataBricks в Azure:

Я выполняю следующие действия:

  • создаю библиотеку из яиц питона, скажем, simon_1_001.egg, которая содержит модуль simon.

  • подключить библиотеку к кластеру и перезапустить кластер

  • подключить ноутбук к кластеру и запустить:

    import simonкак s
    print s. __file__

  • запустить записную книжку, и она правильно дает мне имя файла, включая строку 'simon_1_001.egg'

  • затем отсоедините и удалите файл egg, даже очистив мусор.

  • перезапустите кластер, отсоедините и подключите ноутбук, запустите его и вместо того, чтобы жаловаться, что он не может найти модульСимон, он запускается и отображает ту же строку

Аналогично, если я загружаю более новую версию яйца, скажем, simon_1_002.egg, он все равно отображает ту же строку.Если я подожду полчаса и произойдет повторный запуск несколько раз, то в конце концов он подберет новую библиотеку и отобразит simon_1_002.egg.

Как правильно очистить старые файлы яиц?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Есть еще одна забавная ошибка платформы Databricks в зависимости от работы.Удаление зависимой библиотеки в пользовательском интерфейсе ничего не делает, поэтому старые версии зависимостей остаются там, и задания не выполняются, даже если вы удалите jar / egg из dbfs.

Похоже, что единственным вариантом является обновление заданий с использованием CLI или API .Поэтому вам нужно будет выполнить следующие действия (CLI):

databricks jobs list

Найдите идентификатор своей работы, а затем:

databricks jobs get --job-id 5

Сохраните вывод в файл json job.json, удалите вещи вне settings, скопируйте вещи из settings в корень документа json, удалите ненужные библиотеки и затем выполните:

 databricks jobs reset --job-id 5 --json-file job.json 
0 голосов
/ 22 сентября 2018

Саймон, это ошибка в платформе Databricks.Когда библиотека создается в Databricks с использованием jar, файл сохраняется в dbfs:/FileStore и /databricks/python2/lib/python2.7/site-packages/ для Py2 и /databricks/python3/lib/python3.5/site-packages/ для кластеров Py3.

В обоих случаях jar и egg,путь сохраняется при создании библиотеки.Когда библиотека отсоединяется и удаляется из корзины, она должна удалить копию из DBFS, чего она не делает в настоящее время.

Чтобы устранить эту проблему несоответствия, вы можете проверить вложенную вкладку среды в Spark UI илииспользование %sh ls в ячейке для поиска подходящих путей, чтобы убедиться, что библиотека удалена правильно или нет, а также удалить их с помощью команды %sh rm перед перезапуском кластера и присоединением более новой версии библиотеки.

...