Delen via


Interactieve R-ontwikkeling

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

In dit artikel wordt beschreven hoe u R gebruikt in Azure Machine Learning-studio op een rekenproces waarop een R-kernel wordt uitgevoerd in een Jupyter-notebook.

De populaire RStudio IDE werkt ook. U kunt RStudio of Posit Workbench installeren in een aangepaste container op een rekenproces. Dit heeft echter beperkingen bij het lezen en schrijven naar uw Azure Machine Learning-werkruimte.

Belangrijk

De code die in dit artikel wordt weergegeven, werkt op een Azure Machine Learning-rekenproces. Het rekenproces heeft een omgevings- en configuratiebestand dat nodig is om de code te kunnen uitvoeren.

Vereisten

R uitvoeren in een notebook in studio

U gebruikt een notebook in uw Azure Machine Learning-werkruimte op een rekeninstantie.

  1. Meld u aan bij Azure Machine Learning-studio

  2. Open uw werkruimte als deze nog niet is geopend

  3. Selecteer in het linkernavigatievenster Notitieblokken

  4. Maak een nieuw notebook met de naam RunR.ipynb

    Aanbeveling

    Als u niet zeker weet hoe u notebooks maakt en gebruikt in de studio, bekijk Jupyter-notebooks uitvoeren in uw werkruimte

  5. Selecteer het notitieblok.

  6. Controleer op de notebookwerkbalk of uw rekenproces wordt uitgevoerd. Zo niet, start het nu.

  7. Schakel op de notebookwerkbalk de kernel over naar R.

    Schermopname: Schakel de notebook-kernel over naar R.

Uw notebook is nu klaar om R-opdrachten uit te voeren.

Toegang tot gegevens

U kunt bestanden uploaden naar de opslagresource voor werkruimtebestanden en deze bestanden vervolgens openen in R. Voor bestanden die zijn opgeslagen in Azure-gegevensassets of gegevens uit gegevensarchieven, moet u echter enkele pakketten installeren.

In deze sectie wordt beschreven hoe u Python en het reticulate pakket gebruikt om uw gegevensassets en gegevensarchieven vanuit een interactieve sessie in R te laden. U gebruikt het azureml-fsspec Python-pakket en het reticulate R-pakket om tabelgegevens te lezen als Pandas DataFrames. Deze sectie bevat ook een voorbeeld van het lezen van gegevensassets en gegevensarchieven in een R data.frame.

Ga als volgt te werk om deze pakketten te installeren:

  1. Maak een nieuw bestand op het rekenproces met de naam setup.sh.

  2. Kopieer deze code naar het bestand:

    #!/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. Selecteer Opslaan en script uitvoeren in terminal om het script uit te voeren

Het installatiescript verwerkt deze stappen:

  • pip wordt azureml-fsspec geïnstalleerd in de standaardconda-omgeving voor het rekenproces
  • Installeert het R-pakket reticulate indien nodig (versie moet 1.26 of hoger zijn)

Tabelgegevens lezen uit geregistreerde gegevensassets of gegevensarchieven

Voor gegevens die zijn opgeslagen in een gegevensasset die is gemaakt in Azure Machine Learning, gebruikt u deze stappen om dat tabellaire bestand te lezen in een Pandas DataFrame of een R data.frame:

Notitie

Het lezen van een bestand met reticulate werkt alleen met tabulaire gegevens.

  1. Zorg ervoor dat u de juiste versie van reticulate. Probeer voor een versie kleiner dan 1.26 een nieuwer rekenproces te gebruiken.

    packageVersion("reticulate")
    
  2. Laad reticulate en stel de conda-omgeving in waar azureml-fsspec is geïnstalleerd.

    library(reticulate)
    use_condaenv("azureml_py310_sdkv2")
    print("Environment is set")
  3. Zoek het URI-pad naar het gegevensbestand.

    1. Verkrijg eerst toegang tot uw werkruimte

      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. Gebruik deze code om de asset op te halen. Zorg ervoor dat u <MY_NAME> en <MY_VERSION> vervangt door de naam en het nummer van uw gegevensasset.

      Aanbeveling

      Selecteer in de studio Gegevens in de linkernavigatie om de naam en het versienummer van uw gegevensasset te vinden.

      # 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. Voer de code uit om de URI op te halen.

      py_run_string(py_code)
      print(paste("URI path is", py$data_uri))
  4. Gebruik Pandas-leesfuncties om het bestand of de bestanden in de R-omgeving te lezen.

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

R-pakketten installeren

Een rekenproces heeft veel vooraf geïnstalleerde R-pakketten.

Als u andere pakketten wilt installeren, moet u expliciet de locatie en afhankelijkheden instellen.

Aanbeveling

Wanneer u een ander rekenproces maakt of gebruikt, moet u alle pakketten die u hebt geïnstalleerd, opnieuw installeren.

Als u bijvoorbeeld het tsibble pakket wilt installeren:

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

Notitie

Als u pakketten installeert in een R-sessie die wordt uitgevoerd in een Jupyter-notebook, dependencies = TRUE is dit vereist. Anders worden afhankelijke pakketten niet automatisch geïnstalleerd. De lib-locatie is ook vereist om te installeren op de juiste locatie van het rekenproces.

R-bibliotheken laden

Voeg /home/azureuser toe aan het R-bibliotheekpad.

.libPaths("/home/azureuser")

Aanbeveling

U moet het .libPaths in elk interactief R-script bijwerken om toegang te krijgen tot door de gebruiker geïnstalleerde bibliotheken. Voeg deze code toe aan het begin van elk interactief R-script of notebook.

Zodra het libPath is bijgewerkt, laadt u bibliotheken zoals gewoonlijk.

library('tsibble')

R gebruiken in het notebook

Gebruik R net als in elke andere omgeving, met inbegrip van uw lokale werkstation, buiten de eerder beschreven problemen. In uw notebook of script kunt u lezen en schrijven op het pad waar het notebook/script is opgeslagen.

Notitie

  • Vanuit een interactieve R-sessie kunt u alleen schrijven naar het bestandssysteem van de werkruimte.
  • Vanuit een interactieve R-sessie kunt u niet communiceren met MLflow (zoals logboekmodel of queryregister).