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


Управление библиотеками 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) Поддерживается как пользовательская библиотека Поддерживается
Банка Поддерживается как пользовательская библиотека Поддерживается

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

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

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

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

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

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

Примечание.

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

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

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

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

Совет

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

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

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

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

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

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

  1. Выполните следующие команды в ячейке кода записной книжки. Первая команда устанавливает библиотеку алтаймера . Кроме того, установите 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. Теперь вы можете обойтись с библиотекой алтайдера на уровне сеанса .

    # 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 Структура поддерживает install.packages()remove.packages()команды и devtools:: команды. Все доступные встроенные команды R и пояснения см . в команде install.packages и команде remove.package.

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

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

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

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

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

    install.packages("caesar")
    
  3. Теперь вы можете работать с библиотекой цезаря с областью действия сеанса с помощью задания 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.