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


Управление библиотекой R

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

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

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

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

  • библиотеки веб-каналов ссылаются на те, которые находятся в общедоступных источниках или репозиториях, таких как CRAN или GitHub.

  • пользовательские библиотеки — это код, созданный вами или вашей организацией, .tar.gz можно управлять с помощью порталов управления библиотеками.

Существует два уровня пакетов, установленных в Microsoft Fabric:

  • Окружающая Среда: Управляйте библиотеками через использование окружения для повторного использования одного набора библиотек в различных записных книжках или заданиях.

  • Сессия: Установка на уровне сессии создает среду для конкретной сессии блокнота. Изменение библиотек на уровне сеанса не сохраняется между сеансами.

Сводка текущих доступных действий по управлению библиотекой R:

Тип библиотеки Установка среды Установка на уровне сеанса
Канал R (CRAN) Не поддерживается Поддерживается
Настраиваемая R Поддержанный Поддерживается

Необходимые условия

  • Получите подписку Microsoft Fabric. Или подпишитесь на бесплатную пробную версию Microsoft Fabric.

  • Войдите в Microsoft Fabric.

  • Используйте переключатель интерфейса в левой нижней части домашней страницы, чтобы перейти на Fabric.

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

Библиотеки R уровня сеанса

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

  • При установке библиотек с областью действия в сеансе только текущая записная книжка имеет доступ к указанным библиотекам.
  • Эти библиотеки не влияют на другие сеансы или задания с помощью того же пула Spark.
  • Эти библиотеки устанавливаются поверх базовых библиотек среды выполнения и библиотек уровня пула.
  • Библиотеки записных книжек имеют наивысший приоритет.
  • Библиотеки R с областью действия сеанса не сохраняются между сессиями. Эти библиотеки устанавливаются в начале каждого сеанса при выполнении связанных команд установки.
  • Библиотеки R с областью действия сеанса автоматически устанавливаются как на узлах драйвера, так и в рабочих узлах.

Заметка

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

Установка пакетов R из CRAN

Вы можете легко установить библиотеку R из CRAN.

# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

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

# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Установка пакетов R с помощью средств разработки

Библиотека devtools упрощает разработку пакетов для ускорения распространенных задач. Эта библиотека устанавливается в среде выполнения Microsoft Fabric по умолчанию.

Можно использовать devtools, чтобы указать определенную версию библиотеки для установки. Эти библиотеки устанавливаются на всех узлах кластера.

# Install a specific version. 
install_version("caesar", version = "1.0.0")

Аналогичным образом можно установить библиотеку непосредственно из GitHub.

# Install a GitHub library. 

install_github("jtilly/matchingR")

В настоящее время в Microsoft Fabric поддерживаются следующие devtools функции:

Команда Описание
install_github() Устанавливает пакет R из GitHub
install_gitlab() Устанавливает пакет R из GitLab
install_bitbucket() Устанавливает пакет R из BitBucket
install_url() Устанавливает пакет R из произвольного URL-адреса
install_git() Установка из произвольного репозитория Git
install_local() Устанавливает из локального файла на диске
install_version() Установка из определенной версии в CRAN

Установка пользовательских библиотек R

Чтобы использовать пользовательскую библиотеку на уровне сеанса, необходимо сначала загрузить её в подключённый Lakehouse.

  1. Откройте записную книжку, в которой вы хотите использовать пользовательскую библиотеку.

  2. В левой части выберите Добавить, чтобы добавить существующее озерохранилище или создать новое озерохранилище.

    Скриншот о том, как добавить lakehouse в записную книжку.

  3. Щелкните правой кнопкой мыши или выберите "..." рядом с файлы для отправки файла .tar.gz.

    Снимок экрана, показывающий, как загрузить ваш файл в папку Lakehouse Files.

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

    install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
    

Просмотр установленных библиотек

Запросите все библиотеки, установленные в сеансе, с помощью команды library.

# query all the libraries installed in current session
library()

Используйте функцию packageVersion для проверки версии библиотеки:

# check the package version
packageVersion("caesar")

Удаление пакета R из сеанса

Функцию detach можно использовать для удаления библиотеки из пространства имен. Эти библиотеки остаются на диске до тех пор, пока они не будут загружены снова.

# detach a library

detach("package: caesar")

Чтобы удалить пакет, привязанный к сеансу, из записной книжки, используйте команду remove.packages(). Это изменение библиотеки не влияет на другие сеансы в одном кластере. Пользователи не могут удалить встроенные библиотеки среды выполнения Microsoft Fabric по умолчанию.

Заметка

Не удается удалить основные пакеты, такие как SparkR, SparklyR или R.

remove.packages("caesar")

Библиотеки для 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 <- sparkR.version()
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)

Дополнительные сведения о функциях R: