Поделиться через


Управление библиотеками Apache Spark в Microsoft Fabric

Библиотека — это коллекция предварительно созданного кода, который разработчики могут импортировать для предоставления функциональных возможностей. Используя библиотеки, вы можете сэкономить время и усилия, не создавая код с нуля для выполнения распространенных задач. Вместо этого импортируйте библиотеку и используйте ее функции и классы для достижения требуемой функциональности. Microsoft Fabric предоставляет несколько механизмов для управления библиотеками и их использования.

  • Встроенные библиотеки: каждая среда выполнения Spark Fabric предоставляет широкий набор популярных предустановленных библиотек. Полный список встроенных библиотек можно найти в среде выполнения Spark Fabric.
  • Общедоступные библиотеки: общедоступные библиотеки создаются из репозиториев, таких как PyPI и Conda, которые в настоящее время поддерживаются.
  • Пользовательские библиотеки: пользовательские библиотеки ссылаются на код, который вы или ваша организация создаете. Fabric поддерживает их в форматах WHL, .jar и .tar.gz . Fabric поддерживает .tar.gz только для языка R. Для пользовательских библиотек Python используйте формат WHL .

Сводка рекомендаций по управлению библиотеками

В следующих сценариях описаны рекомендации по использованию библиотек в Microsoft Fabric.

Сценарий 1. Администратор задает библиотеки по умолчанию для рабочей области

Чтобы задать библиотеки по умолчанию, необходимо быть администратором рабочей области. Как администратор вы можете выполнять следующие задачи:

  1. Создание новой среды
  2. Установка необходимых библиотек в среде
  3. Присоединение этой среды к рабочей области по умолчанию

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

Сценарий 2. Сохранение спецификаций библиотеки для одного или нескольких элементов кода

Если у вас есть общие библиотеки для разных элементов кода и не требуется частое обновление, установите библиотеки в среде и подключите их к элементам кода — это хороший выбор.

При публикации потребуется некоторое время, чтобы библиотеки в средах стали эффективными. Обычно это занимает 5–15 минут в зависимости от сложности библиотек. Во время этого процесса система поможет устранить потенциальные конфликты и загрузить необходимые зависимости.

Одним из преимуществ этого подхода является то, что успешно установленные библиотеки гарантированно будут доступны при запуске сеанса Spark с присоединенной средой. Она экономит усилия по поддержанию общих библиотек для проектов.

Настоятельно рекомендуется использование в сценариях конвейера благодаря его стабильности.

Сценарий 3. Встроенная установка в интерактивном запуске

Если вы используете ноутбуки для интерактивного написания кода, то встроенная установка для добавления дополнительных новых библиотек PyPI/conda или проверки пользовательских библиотек для одноразового использования является наилучшей практикой. Встроенные команды в Fabric позволяют сделать библиотеку активной и использовать её в текущем сеансе записной книжки Spark. Он позволяет быстро установить, но установленная библиотека не сохраняется в разных сеансах.

Поскольку %pip install создание различных деревьев зависимостей время от времени может привести к конфликтам библиотек, встроенные команды отключены по умолчанию в запусках конвейера и НЕ рекомендуется использовать их в ваших конвейерах.

Сводка поддерживаемых типов библиотек

Тип библиотеки Управление библиотекой среды Встроенная установка
Public Python (PyPI и Conda) Поддерживается Поддерживается
Python Custom (.whl) Поддерживается Поддерживается
R Public (CRAN) Не поддерживается Поддерживается
Пользовательская версия R (.tar.gz) Поддерживается как пользовательская библиотека Поддерживается
JAR-файл Поддерживается как пользовательская библиотека Поддерживается

Встроенная установка

Встроенные команды поддерживают управление библиотеками в каждом сеансе записной книжки.

Инлайн-установка Python

Система перезапускает интерпретатор Python, чтобы применить изменение библиотек. Все переменные, определенные перед запуском ячейки команд, будут потеряны. Настоятельно рекомендуется поместить все команды для добавления, удаления или обновления пакетов Python в начале записной книжки.

Встроенные команды для управления библиотеками Python отключены в конвейере записной книжки, выполняемом по умолчанию. Если вы хотите включить %pip install для конвейера, добавьте "_inlineInstallationEnabled" в качестве булева параметра, установленного в True, в параметры действия записной книжки.

Снимок экрана: настройка включения пакета pip для запуска конвейера записной книжки.

Замечание

Это %pip install может время от времени приводить к несогласованным результатам. Рекомендуется установить библиотеку в среде и использовать ее в конвейере обработки данных. Команда %pip install на данный момент не поддерживается в режиме высокой параллельности. При выполнении ссылочных операций в записных книжках команды инлайн для управления библиотеками Python не поддерживаются. Чтобы обеспечить правильность выполнения, рекомендуется удалить эти встроенные команды из указанной записной книжки.

Мы рекомендуем использовать %pip вместо !pip. !pip — это встроенная команда оболочки IPython, которая имеет следующие ограничения:

  • !pip устанавливает пакет только на узле драйвера, а не на узлах исполнителя.
  • Пакеты, которые устанавливаются через !pip, не вызывают конфликтов со встроенными пакетами или если пакеты уже импортированы в записную книжку.

Однако %pip обрабатывает эти сценарии. Библиотеки, установленные с помощью %pip , доступны как на узлах драйвера, так и исполнителя и по-прежнему эффективны, даже библиотека уже импортирована.

Подсказка

Команда %conda install обычно занимает больше времени, чем %pip install команда для установки новых библиотек Python. Он проверяет полные зависимости и разрешает конфликты.

Возможно, вы хотите использовать %conda install для повышения надежности и стабильности. Вы можете использовать %pip install , если вы уверены, что библиотека, которую вы хотите установить, не конфликтует с предварительно установленными библиотеками в среде выполнения.

Все доступные встроенные команды Python и уточнения, см. %pip команды и %conda команды.

Управление общедоступными библиотеками Python с помощью встроенной установки

В этом примере показано, как использовать встроенные команды для управления библиотеками. Предположим, что вы хотите использовать altair, мощную библиотеку визуализации для Python, для однократного изучения данных. Предположим, что библиотека не установлена в рабочей области. В следующем примере используются команды conda для иллюстрации шагов.

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

  1. Выполните следующие команды в ячейке кода записной книжки. Первая команда устанавливает библиотеку altair. Кроме того, установите vega_datasets, содержащую семантику модели, которую можно использовать для визуализации.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    Выходные данные ячейки указывают на результат установки.

  2. Импортируйте пакет и семантику модели, выполнив следующий код в другой ячейке записной книжки.

    import altair as alt
    from vega_datasets import data
    
  3. Теперь вы можете поиграть с библиотекой altair в рамках сеанса.

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

Управление пользовательскими библиотеками Python с помощью встроенной установки

Пользовательские библиотеки Python можно загрузить в папку ресурсов записной книжки или подключенной среды. Папки ресурсов — это встроенная файловая система, предоставляемая каждым ноутбуком и рабочими средами. Дополнительные сведения см. в ресурсах Записной книжки . После отправки можно перетащить пользовательскую библиотеку в ячейку кода, встроенная команда для установки библиотеки создается автоматически. Кроме того, для установки можно использовать следующую команду.

# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"             

Встроенная установка R

Для управления библиотеками R Fabric поддерживает команды install.packages(), remove.packages() и devtools::. Все доступные встроенные команды R и пояснения см. в команде install.packages и команде remove.package.

Управление общедоступными библиотеками R с помощью встроенной установки

Выполните этот пример, чтобы выполнить инструкции по установке общедоступной библиотеки R.

Чтобы установить библиотеку фида R, выполните следующие действия.

  1. Переключите рабочий язык на SparkR (R) на ленте записной книжки.

  2. Установите библиотеку цезаря , выполнив следующую команду в ячейке записной книжки.

    install.packages("caesar")
    
  3. Теперь вы можете работать с библиотекой caesar с областью видимости сеанса с помощью задания Spark.

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

Управление библиотеками Jar с помощью встроенной установки

Файлы .jar поддерживаются в сеансах записной книжки с помощью следующей команды.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

Ячейка кода использует хранилище Lakehouse в качестве примера. В обозревателе записных книжек можно скопировать полный путь ABFS к файлу и заменить его в коде. Снимок экрана: команды меню для получения пути ABFS.