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


Azure Databricks для разработчиков на R

В этом разделе приводятся рекомендации по разработке записных книжек и заданий в Azure Databricks на языке R.

Базовый рабочий процесс для начала работы

  1. Импорт кода: импортируйте собственный код из файлов или репозиториев Git или воспользуйтесь приведенным ниже руководством. Databricks рекомендует научиться использовать интерактивные записные книжки Azure Databricks.
  2. Запуск кода в кластере: создайте собственный кластер или получите разрешения на использование общего кластера. Подключите к этому кластеру записную книжку и запустите ее.

После этого вы можете перейти к статьям по более конкретным темам:

Учебники

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

Справочные материалы

В следующих подразделах list представлены ключевые функции и советы, которые помогут вам начать разработку в Azure Databricks с помощью R.

Azure Databricks поддерживает два API, которые предоставляют интерфейс R для Apache Spark: SparkR и sparklyr.

SparkR

Важный

SparkR в Databricks вышел из употребления в Databricks Runtime 16.0 и выше. Databricks рекомендует вместо этого использовать sparklyr.

В этих статьях приведены общие сведения и справочные материалы по SparkR. SparkR — это интерфейс R для Apache Spark, предоставляющий реализацию распределенного кадра данных. SparkR поддерживает такие операции, как выбор, фильтрация и агрегирование (аналогично кадрам данных R), но в больших наборах данных.

sparklyr

В этой статье представлено введение в sparklyr. sparklyr — это интерфейс R для Apache Spark, который предоставляет функциональные возможности, аналогичные dplyr, broom и DBI.

Сравнение SparkR и sparklyr

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

Работа с DataFrame и tables с использованием SparkR и sparklyr

В этой статье описывается использование R, SparkR, sparklyr и dplyr для работы с R data.frame, Spark DataFrames и Spark tables в Azure Databricks.

Управление кодом с помощью записных книжек и папок Databricks Git

Записные книжки Azure Databricks поддерживают язык R. Функциональные возможности этих записных книжек аналогичны возможностями Jupyter с некоторыми дополнениями, например: встроенные визуализации с использованием больших данных, интеграции Apache Spark для отладки и мониторинга производительности, интеграции MLflow для отслеживания экспериментов машинного обучения. начал с импорта записной книжкис . Получив доступ к кластеру, вы сможете подключить записную книжку к этому кластеру и запустить записную книжку.

Папки Azure Databricks Git позволяют пользователям синхронизировать записные книжки и другие файлы с репозиториями Git. Папки Azure Databricks Git помогают управлять версиями кода и совместной работой, а также упрощать импорт полного репозитория кода в Azure Databricks, просмотр прошлых версий записных книжек и интеграцию с разработкой интегрированной среды разработки IDE. Get начал клонирование удаленного репозитория Git. Затем можно открыть или создать записные книжки с клонированием репозитория, подключить записную книжку к кластеру и запустить записную книжку.

Кластеры

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

Один узел R и распределенный R

Кластеры Azure Databricks состоят из узла драйвера Apache Spark и ноль или более рабочих узлов Spark (также известных как исполнитель). Узел драйвера поддерживает состояние подключенной записной книжки, поддерживает SparkContextкоманды записной книжки и библиотеки, а также запускает мастер Spark, который координируется с исполнителями Spark. Рабочие узлы запускают исполнителей Spark, один исполнитель Spark на рабочий узел.

В кластере один узел — это один управляющий узел и не имеет рабочих узлов, при этом Spark работает в локальном режиме для поддержки доступа к tables, управляемому платформой Azure Databricks. Кластеры с одним узлом поддерживают RStudio, записные книжки и библиотеки и полезны для проектов R, которые не зависят от Spark для больших данных или параллельной обработки. Ознакомьтесь с вычислениями с одним узлом или несколькими узлами.

Для размеров данных, которые R пытается обработать (многие гигабайты или петабайты), вместо этого следует использовать несколько узлов или распределенных кластеров. Распределенные кластеры имеют один узел драйвера и один или несколько рабочих узлов. Распределенные кластеры поддерживают не только RStudio, записные книжки и библиотеки, но и пакеты R, такие как SparkR и sparkly, которые однозначно предназначены для использования распределенных кластеров через SparkContextних. Эти пакеты предоставляют знакомые API SQL и DataFrame, которые позволяют назначать и выполнять различные задачи и команды Spark параллельно между рабочими узлами. Дополнительные сведения о sparklyr и SparkR см. в статье "Сравнение SparkR и sparklyr".

Некоторые функции SparkR и sparklyr, которые используют особые преимущества распределения связанных работ между рабочими узлами, включают следующее:

  • sparklyr::spark_apply: выполняет произвольный код R в большом масштабе в кластере. Это особенно полезно для использования функций, доступных только в пакетах R или R, недоступных в Apache Spark или других пакетах Spark.
  • SparkR::dapply: применяет указанную функцию к каждой partitionSparkDataFrame.
  • SparkR::dapplyCollect: применяет указанную функцию к каждой partitionSparkDataFrame и собирает результаты обратно в R в виде data.frame.
  • SparkR::gapply: группирует SparkDataFrame с использованием указанного columns и применяет указанную функцию R к каждой группе.
  • SparkR::gapplyCollect: группирует SparkDataFrame с помощью указанной columns, применяет указанную функцию R к каждой группе и собирает результат обратно в R в виде data.frame.
  • SparkR::spark.lapply: выполняет указанную функцию по list элементов, распределяя вычисления с помощью Spark.

Примеры см. в записной книжке Distributed R: User Defined Functions in Spark.

Службы контейнеров Databricks

Службы контейнеров Databricks позволяют указать образ Docker при создании кластера. Databricks предоставляет базовый образ databricksruntime/rbase в Docker Hub в качестве примера для запуска кластера Databricks Container Services с поддержкой R. См. также dockerfile, который используется для generate этого базового образа.

Библиотеки

Кластеры Azure Databricks используют среду выполнения Databricks Runtime, которая в стандартной конфигурации содержит множество популярных библиотек, в том числе Apache Spark, Delta Lake и другие. Кроме того, можно устанавливать дополнительные сторонние или пользовательские пакеты R в библиотеки и использовать их в записных книжках и заданиях.

Начните с библиотек по умолчанию в версиях заметок о выпуске Databricks Runtime и совместимости. Используйте Databricks Runtime для Машинное обучение для рабочих нагрузок машинного обучения. Полные списки предварительно установленных библиотек см. в разделе "Установленные библиотеки R" для целевой среды выполнения Databricks в версиях примечаний о выпуске Databricks Runtime и совместимости.

Вы можете настроить среду, используя библиотеки R с областью действия записной книжки, что позволит вам изменять записную книжку или среду заданий с помощью библиотек из CRAN или других репозиториев. Для этого можно использовать знакомую функцию install.packages из utils. В следующем примере устанавливается пакет Arrow R из репозитория CRAN по умолчанию:

install.packages("arrow")

Если вам нужна более ранняя версия, чем в Databricks Runtime, вы можете использовать записную книжку для запуска функции install_version из devtools. В следующем примере устанавливается dplyr версии 0.7.4 из CRAN:

require(devtools)

install_version(
  package = "dplyr",
  version = "0.7.4",
  repos   = "http://cran.r-project.org"
)

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

При необходимости можно установить другие библиотеки в качестве библиотек кластера, например из CRAN. Для этого в пользовательском интерфейсе кластера выберите Библиотеки > Установить новую > CRAN и укажите имя библиотеки. Этот подход особенно важен для вызова определяемых пользователем функций с помощью SparkR или sparklyr.

Дополнительные сведения см. в статье Библиотеки.

Чтобы установить пользовательский пакет в библиотеку:

  1. Создайте пользовательский пакет из командной строки или с помощью RStudio.

  2. Скопируйте пользовательский файл пакета с компьютера разработки на рабочую область Azure Databricks. Дополнительные сведения см. в разделе "Библиотеки".

  3. Установите пользовательский пакет в библиотеку, выполнив команду install.packages.

    Например, это можно сделать из записной книжки в рабочей области:

    install.packages(
      pkgs  = "/path/to/tar/file/<custom-package>.tar.gz",
      type  = "source",
      repos = NULL
    )
    

    Или сделайте так:

    %sh
    R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
    

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

Например:

# Add the library to the search path one time.
.libPaths(c("/path/to/tar/file/", .libPaths()))

# Load the library. You do not need to add the library to the search path again.
library(<custom-package>)

Чтобы установить пользовательский пакет в качестве библиотеки на каждом узле в кластере, необходимо использовать скрипты инициализации?.

Визуализации

Записные книжки Azure Databricks для R поддерживают несколько типов визуализаций, реализуемых с помощью функции display.

Работы

Рабочие нагрузки R можно автоматизировать как запланированное или активируемое задание записной книжки в Azure Databricks.

  • Дополнительные сведения о создании задания с помощью пользовательского интерфейса см. в разделе "Настройка и изменение заданий Databricks".
  • API заданий позволяет создавать, изменять и удалять задания.
  • Интерфейс командной строки Databricks предоставляет удобный интерфейс командной строки для вызова API заданий.

Машинное обучение

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

Для алгоритмов машинного обучения можно использовать предварительно установленные библиотеки в Databricks Runtime для Машинное обучение. Вы также можете установить пользовательские библиотеки.

Для операций машинного обучения (MLOps) Azure Databricks предоставляет управляемую службу для библиотеки MLflow открытый код. С помощью отслеживания MLflow можно записывать разработку моделей и сохранять модели в многократно используемых форматах. Реестр моделей MLflow можно использовать для управления и автоматизации продвижения моделей в рабочую среду. Задания и обслуживание моделей позволяют размещать модели в виде пакетных и потоковых заданий в качестве конечных точек REST. Дополнительные сведения и примеры см. в разделе управления жизненным циклом машинного обучения с помощью MLflow или документации по API R MLflow.

Средства для разработчиков на языке R

Кроме записных книжек Azure Databricks вы можете также использовать следующие средства для разработчиков на R:

Настройка сеанса R

В Databricks Runtime 12.2 LTS и более поздних версиях сеансы R можно настроить с помощью файлов профиля.Rprofile на уровне сайта. Записные книжки R будут источником файла в виде кода R во время запуска. Чтобы изменить файл, найдите значение R_HOME и измените $R_HOME/etc/Rprofile.siteего. Обратите внимание, что Databricks добавила в файл конфигурацию, чтобы обеспечить правильную функциональность размещенного RStudio в Azure Databricks. Удаление любого из этих объектов может привести к тому, что RStudio не работает должным образом.

В Databricks Runtime 11.3 LTS и ниже это поведение можно включить, задав переменную DATABRICKS_ENABLE_RPROFILE=trueсреды.

Дополнительные ресурсы