Управление пакетами на уровне сеанса
Помимо пакетов уровня пула, можно также указать библиотеки с областью действия сеанса в начале сеанса записной книжки. Библиотеки с областью сеанса позволяют указывать и использовать пакеты Python, jar и R в сеансе записной книжки.
При использовании библиотек с областью сеанса важно учитывать следующие моменты:
- При установке библиотек на уровне сеанса доступ к указанным библиотекам будет иметь только текущая записная книжка.
- Эти библиотеки не влияют на другие сеансы или задания с помощью того же пула Spark.
- Эти библиотеки устанавливаются поверх базовых библиотек среды выполнения и уровней пула и имеют наивысший приоритет.
- Библиотеки с областью действия сеанса не сохраняются в сеансах.
Пакеты Python на уровне сеанса
Управление пакетами Python с областью действия сеанса с помощью файла environment.yml
Чтобы определить пакеты Python на уровне сеанса:
- Перейдите к выбранному пулу Spark и убедитесь, что вы включили библиотеки на уровне сеанса. Этот параметр можно включить, перейдя на вкладку "Управление пакетами> пула>Apache Spark".
- После применения параметра можно открыть записную книжку и выбрать пункт "Настройка пакетов сеансов>".
- Здесь можно отправить файл Conda environment.yml для установки или обновления пакетов в сеансе. Указанные библиотеки присутствуют после запуска сеанса. Эти библиотеки больше не будут доступны после завершения сеанса.
Управление пакетами Python с областью сеанса с помощью команд %pip и %conda
Вы можете использовать популярные команды %pip и %conda для установки дополнительных сторонних библиотек или пользовательских библиотек во время сеанса записной книжки Apache Spark. В этом разделе мы используем команды %pip для демонстрации нескольких распространенных сценариев.
Примечание.
- Мы рекомендуем поместить команды %pip и %conda в первую ячейку записной книжки, если вы хотите установить новые библиотеки. Интерпретатор Python будет перезапущен после управления библиотекой уровня сеанса, чтобы обеспечить эффективность изменений.
- Эти команды управления библиотеками Python будут отключены при выполнении заданий конвейера. Если вы хотите установить пакет в конвейере, необходимо использовать возможности управления библиотеками на уровне пула.
- Библиотеки Python с областью сеанса автоматически устанавливаются как на узлах драйвера, так и в рабочих узлах.
- Следующие команды %conda не поддерживаются: создание, очистка, сравнение, активация, деактивация, запуск, пакет.
- Вы можете ссылаться на команды %pip и команды %conda для полного списка команд.
Установка стороннего пакета
Вы можете легко установить библиотеку Python из PyPI.
# Install vega_datasets
%pip install altair vega_datasets
Чтобы проверить результат установки, можно запустить следующий код для визуализации vega_datasets
# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region
import altair as alt
from vega_datasets import data
cars = data.cars()
alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
).interactive()
Установка пакета колесика из учетной записи хранения
Чтобы установить библиотеку из хранилища, необходимо подключиться к учетной записи хранения, выполнив следующие команды.
from notebookutils import mssparkutils
mssparkutils.fs.mount(
"abfss://<<file system>>@<<storage account>.dfs.core.windows.net",
"/<<path to wheel file>>",
{"linkedService":"<<storage name>>"}
)
А затем можно использовать команду установки %pip для установки необходимого пакета колесика.
%pip install /<<path to wheel file>>/<<wheel package name>>.whl
Установка другой версии встроенной библиотеки
Для просмотра встроенной версии определенного пакета можно использовать следующую команду. Мы используем pandas в качестве примера
%pip show pandas
Результатом является следующий журнал:
Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...
Следующая команда позволяет переключить pandas на другую версию, предположим , 1.2.4
%pip install pandas==1.2.4
Удаление библиотеки с областью действия сеанса
Если вы хотите удалить пакет, установленный в этом сеансе записной книжки, можно обратиться к следующим командам. Однако вы не можете удалить встроенные пакеты.
%pip uninstall altair vega_datasets --yes
Использование команды %pip для установки библиотек из файла requirement.txt
%pip install -r /<<path to requirement file>>/requirements.txt
Пакеты Java или Scala на уровне сеанса
Чтобы указать пакеты Java или Scala с областью действия сеанса, можно использовать параметр %%configure
:
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
}
}
Примечание.
- Мы рекомендуем выполнить %%configure в начале записной книжки. Полный список допустимых параметров можно найти в этом документе.
Пакеты R с областью действия сеанса (предварительная версия)
Пулы Azure Synapse Analytics включают множество популярных библиотек R вне коробки. Вы также можете установить дополнительные сторонние библиотеки во время сеанса записной книжки Apache Spark.
Примечание.
- Эти команды управления библиотеками R будут отключены при выполнении заданий конвейера. Если вы хотите установить пакет в конвейере, необходимо использовать возможности управления библиотеками на уровне пула.
- Библиотеки R с областью действия сеанса автоматически устанавливаются как на узлах драйвера, так и в рабочих узлах.
Установка пакета
Вы можете легко установить библиотеку R из CRAN.
# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
Вы также можете использовать моментальные снимки CRAN в качестве репозитория, чтобы обеспечить загрузку одной и той же версии пакета каждый раз.
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
Использование средств разработки для установки пакетов
Библиотека devtools
упрощает разработку пакетов для ускорения распространенных задач. Эта библиотека устанавливается в среде выполнения Azure Synapse Analytics по умолчанию.
Для установки можно devtools
указать определенную версию библиотеки. Эти библиотеки будут установлены на всех узлах кластера.
# Install a specific version.
install_version("caesar", version = "1.0.0")
Аналогичным образом можно установить библиотеку непосредственно из GitHub.
# Install a GitHub library.
install_github("jtilly/matchingR")
В настоящее время в Azure Synapse Analytics поддерживаются следующие devtools
функции:
Команда | Description |
---|---|
install_github() | Устанавливает пакет R из GitHub |
install_gitlab() | Устанавливает пакет R из GitLab |
install_bitbucket() | Устанавливает пакет R из Bitbucket |
install_url() | Устанавливает пакет R из произвольного URL-адреса |
install_git() | Установка из произвольного репозитория Git |
install_local() | Устанавливает из локального файла на диске |
install_version() | Установка из определенной версии в CRAN |
Просмотр установленных библиотек
Вы можете запросить все библиотеки, установленные в сеансе library
, с помощью команды.
library()
Функцию packageVersion
можно использовать для проверки версии библиотеки:
packageVersion("caesar")
Удаление пакета R из сеанса
Функцию detach
можно использовать для удаления библиотеки из пространства имен. Эти библиотеки остаются на диске до тех пор, пока они не будут загружены снова.
# detach a library
detach("package: caesar")
Чтобы удалить пакет с областью сеанса из записной книжки, используйте remove.packages()
команду. Это изменение библиотеки не влияет на другие сеансы в одном кластере. Пользователи не могут удалять или удалять встроенные библиотеки среды выполнения Azure Synapse Analytics по умолчанию.
remove.packages("caesar")
Примечание.
Не удается удалить основные пакеты, такие как SparkR, SparklyR или R.
Библиотеки R с областью действия сеанса и SparkR
Библиотеки с областью действия записной книжки доступны для рабочих ролей SparkR.
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
Библиотеки R с областью действия сеанса и SparklyR
С помощью spark_apply() в SparklyR можно использовать любой пакет R внутри Spark. По умолчанию в sparklyr::spark_apply() аргументы пакетов задают значение FALSE. При этом библиотеки в текущих libPaths копируются в рабочие роли, что позволяет импортировать и использовать их для рабочих ролей. Например, можно выполнить следующее, чтобы создать зашифрованное цезарем сообщение с sparklyr::spark_apply():
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
Следующие шаги
- Просмотр библиотек по умолчанию: поддержка версий Apache Spark
- Управление пакетами за пределами портала Synapse Studio — Управление пакетами с помощью команд Az и REST API.