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

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

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

Управление библиотекой в параметре рабочей области

Внимание

Управление библиотеками в параметре рабочей области больше не поддерживается. Сведения о переносе библиотек рабочей области и свойств Spark в среду по умолчанию см. в разделе "Перенос библиотек рабочей области" и свойств Spark.

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

В следующих сценариях описаны рекомендации.

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

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

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

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

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

Если вы хотите сохранить спецификации библиотек, установите библиотеки в среде и подключите его к элементам кода.

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

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

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

Если вы заинтересованы в однократном использовании в интерактивной записной книжке библиотеки, которая не установлена, встроенная установка является наиболее удобным вариантом. Встроенные команды в Fabric позволяют использовать библиотеку в текущем сеансе Spark записной книжки. Библиотека не сохраняется в разных сеансах.

Пользователи, имеющие разрешение на запуск записной книжки, могут устанавливать другие библиотеки в сеансе Spark.

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

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

Внимание

В настоящее время существуют ограничения библиотеки .jar .

  • Для пользователей Scala файл .jar может успешно установить в среде, но он не действует для сеансов Spark/Scala. Установка переопределяет встроенную библиотеку с другой библиотекой. Новая .jar работает в сеансах.
  • Для пользователей Python все .jar файлы в настоящее время не поддерживаются в среде. Они могут успешно устанавливаться в среде, но не эффективны в сеансах PySpark.
  • Вместо этого можно установить файлы .jar на уровне сеанса записной книжки.

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

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

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

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

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

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

Примечание.

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

Вместо этого рекомендуется %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 в папку "Файл " в приложении Lakehouse, подключенном к записной книжке. Перейдите в lakehouse, выберите значок ... в папке "Файл " и отправьте пользовательскую библиотеку.

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

# install the .whl through pip command
%pip install /lakehouse/default/Files/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.