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


Интерактивная разработка R

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение Azure CLI ml версии 2 (текущий)Python SDK azure-ai-ml версии 2 (текущий)

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

Также работает популярная интегрированная среда разработки RStudio. Вы можете установить RStudio или Posit Workbench в пользовательском контейнере на вычислительном экземпляре. Однако это имеет ограничения на чтение и запись в рабочую область Azure машинного обучения.

Внимание

Код, показанный в этой статье, работает на вычислительном экземпляре Azure Machine Learning. Вычислительный экземпляр имеет среду и файл конфигурации, необходимый для успешного выполнения кода.

Предварительные условия

Запуск R в блокноте в среде Studio.

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

  1. Войдите в Студию машинного обучения Azure

  2. Откройте рабочую область, если она еще не открыта

  3. В области навигации слева выберите "Записные книжки"

  4. Создание записной книжки с именем RunR.ipynb

    Совет

    Если вы не знаете, как создавать и работать с записными книжками в студии, ознакомьтесь с разделом Запуск записных книжек Jupyter в вашей рабочей области.

  5. Выберите записную книжку.

  6. На панели инструментов ноутбука убедитесь, что вычислительный экземпляр запущен. Если нет, запустите его сейчас.

  7. На панели инструментов записной книжки переключите ядро на R.

    Снимок экрана: переключите ядро записной книжки, чтобы использовать R.

Теперь записная книжка готова к выполнению команд R.

Доступ к данным

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

В этом разделе описывается, как использовать Python и reticulate пакет для загрузки ресурсов данных и хранилищ данных в R из интерактивного сеанса. Вы используете пакет azureml-fsspec Python и пакет reticulate R для чтения табличных данных в виде кадров данных Pandas. В этом разделе также приведен пример чтения ресурсов данных и хранилищ данных в R data.frame.

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

  1. Создайте новый файл в вычислительном экземпляре с именем setup.sh.

  2. Скопируйте следующий код в файл:

    #!/bin/bash
    
    set -e
    
    # Installs azureml-fsspec in default conda environment 
    # Does not need to run as sudo
    
    eval "$(conda shell.bash hook)"
    conda activate azureml_py310_sdkv2
    pip install azureml-fsspec
    conda deactivate
    
    # Checks that version 1.26 of reticulate is installed (needs to be done as sudo)
    
    sudo -u azureuser -i <<'EOF'
    R -e "if (packageVersion('reticulate') >= 1.26) message('Version OK') else install.packages('reticulate')"
    EOF
    
  3. Нажмите кнопку "Сохранить и запустить скрипт" в терминале , чтобы запустить скрипт

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

  • pip устанавливает azureml-fsspec в среду conda по умолчанию для вычислительного экземпляра
  • При необходимости устанавливает пакет R reticulate (версия должна быть 1.26 или более поздней)

Чтение табличных данных из зарегистрированных ресурсов данных или хранилищ данных

Для данных, хранящихся в ресурсе данных, созданном в Azure Machine Learning, выполните следующие действия, чтобы прочитать эти табличные данные в Pandas DataFrame или R:

Примечание.

Чтение файла с reticulate возможно только для табличных данных.

  1. Убедитесь, что у вас есть правильная версия reticulate. Для версии менее 1.26 попробуйте использовать более новый вычислительный экземпляр.

    packageVersion("reticulate")
    
  2. Загрузка reticulate и установка среды conda, в которой azureml-fsspec была установлена

    library(reticulate)
    use_condaenv("azureml_py310_sdkv2")
    print("Environment is set")
  3. Найдите путь URI к файлу данных.

    1. Сначала получите ручку для вашей рабочей области

      py_code <- "from azure.identity import DefaultAzureCredential
      from azure.ai.ml import MLClient
      credential = DefaultAzureCredential()
      ml_client = MLClient.from_config(credential=credential)"
      
      py_run_string(py_code)
      print("ml_client is configured")
    2. Используйте этот код для получения ресурса. Обязательно замените <MY_NAME> и <MY_VERSION> на имя и номер ресурса данных.

      Совет

      В студии выберите Данные в левой области навигации, чтобы найти имя и номер версии ресурса данных.

      # Replace <MY_NAME> and <MY_VERSION> with your values
      py_code <- "my_name = '<MY_NAME>'
      my_version = '<MY_VERSION>'
      data_asset = ml_client.data.get(name=my_name, version=my_version)
      data_uri = data_asset.path"
    3. Чтобы получить универсальный код ресурса (URI), выполните код.

      py_run_string(py_code)
      print(paste("URI path is", py$data_uri))
  4. Используйте функции чтения Pandas для чтения файла или файлов в среде R.

    pd <- import("pandas")
    cc <- pd$read_csv(py$data_uri)
    head(cc)

Установка пакетов R

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

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

Совет

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

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

install.packages("tsibble", 
                 dependencies = TRUE,
                 lib = "/home/azureuser")

Примечание.

Если вы устанавливаете пакеты в сеансе R, запущенном в среде Jupyter Notebook, dependencies = TRUE требуется. В противном случае зависимые пакеты не будут автоматически устанавливаться. Для установки также необходимо, чтобы библиотека находилась в правильном местоположении вычислительного экземпляра.

Загрузка библиотек R

Добавьте в путь к библиотеке R /home/azureuser.

.libPaths("/home/azureuser")

Совет

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

После обновления libPath загрузите библиотеки как обычно.

library('tsibble')

Используйте R в записной книжке

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

Примечание.

  • В интерактивном сеансе R вы можете записывать только в файловую систему рабочей области.
  • В интерактивном сеансе R невозможно взаимодействовать с MLflow (например, моделью журнала или реестром запросов).