Cet article explique comment utiliser R dans Azure Machine Learning studio, sur une instance de calcul qui exécute un noyau R dans un notebook Jupyter.
L’IDE RStudio populaire fonctionne également. Vous pouvez installer RStudio ou Posit Workbench dans un conteneur personnalisé sur une instance de calcul. Toutefois, il présente des limitations en lecture et en écriture dans votre espace de travail Azure Machine Learning.
Important
Le code présenté dans cet article fonctionne sur une instance de calcul Azure Machine Learning. L’instance de calcul dispose d’un environnement et d’un fichier de configuration nécessaires à la bonne exécution du code.
Cette section explique comment utiliser Python et le package reticulate pour charger vos ressources de données et vos magasins de données dans R à partir d’une session interactive. Vous utilisez le package Python azureml-fsspec et le package R reticulate pour lire les données tabulaires en tant que DataFrames Pandas. Cette section inclut également un exemple de lecture de ressources de données et de magasins de données dans un data.frame R.
Pour installer ces packages :
Créez un fichier sur l’instance de calcul, appelé setup.sh.
Copiez ce code dans le fichier :
Bash
#!/bin/bash
set -e
# Installs azureml-fsspec in default conda environment # Does not need to run as sudoeval"$(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
Sélectionnez Enregistrer et exécuter le script dans le terminal pour exécuter le script.
Le script d’installation s’occupe des étapes suivantes :
Installation par pip de azureml-fsspec dans l’environnement conda par défaut pour l’instance de calcul
Installation du package R reticulate si nécessaire (version 1.26 ou ultérieure)
Lire des données tabulaires à partir de ressources de données ou de magasins de données inscrits
Pour des données stockées dans une ressource de données créée dans Azure Machine Learning, suivez ces étapes pour lire ce fichier tabulaire dans un DataFrame Pandas ou un data.frame R :
Notes
La lecture d’un fichier avec reticulate fonctionne uniquement avec des données tabulaires.
Vérifiez que vous disposez de la version correcte de reticulate. Pour une version antérieure à 1.26, essayez d’utiliser une instance de calcul plus récente.
R
packageVersion("reticulate")
Chargez reticulate et définissez l’environnement conda où azureml-fsspec a été installé.
R
library(reticulate)
use_condaenv("azureml_py310_sdkv2")
print("Environment is set")
Recherchez le chemin d’URI du fichier de données.
Tout d’abord, obtenez un handle pour votre espace de travail.
R
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")
Pour récupérer la ressource, utilisez ce code : Veillez à remplacer <MY_NAME> et <MY_VERSION> par le nom et le numéro de votre ressource de données.
Conseil
Dans le volet de navigation de gauche de studio, sélectionnez Données pour rechercher le nom et le numéro de version de votre ressource de données.
R
# 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"
Utilisez les fonctions de lecture Pandas pour lire le ou les fichiers dans l’environnement R.
R
pd <- import("pandas")
cc <- pd$read_csv(py$data_uri)
head(cc)
Vous pouvez aussi utiliser un URI de magasin de données pour accéder à divers fichiers sur un magasin de données inscrit et lire ces ressources dans un data.frame R.
Dans ce format, créez un URI de magasin de données en utilisant vos propres valeurs :
Au lieu de mémoriser le format d’URI du magasin de données, vous pouvez copier-coller l’URI du magasin de données à partir de l’interface utilisateur Studio, si vous savez dans quel magasin de données se trouve votre fichier :
Accédez au fichier/dossier que vous souhaitez lire dans R
Sélectionnez les points de suspension (...) à côté de celui-ci.
Sélectionnez dans le menu Copier l’URI.
Sélectionnez l’URI du magasin de données à copier dans votre notebook/script.
Notez que vous devez créer une variable pour <path> dans le code.
Créez un objet filestore à l’aide de l’URI mentionné précédemment :
Si vous installez des packages au cours d’une session R s’exécutant dans un notebook Jupyter, dependencies = TRUE est nécessaire. Sinon, les packages dépendants ne s’installeront pas automatiquement. L’emplacement lib doit également être installé à l’emplacement correct de l’instance de calcul.
Charger des bibliothèques R
Ajoutez /home/azureuser au chemin de la bibliothèque R.
R
.libPaths("/home/azureuser")
Conseil
Mettez à jour .libPaths dans chaque script R interactif pour accéder aux bibliothèques installées par l’utilisateur. Ajoutez ce code en haut de chaque script ou notebook R interactif.
Une fois libPath mis à jour, chargez les bibliothèques comme d’habitude.
R
library('tsibble')
Utiliser R dans le notebook
Au-delà des problèmes décrits précédemment, utilisez R comme vous le feriez dans n’importe quel autre environnement, tel que votre station de travail locale. Dans votre notebook ou votre script, vous pouvez lire et écrire sur le chemin où le notebook/script est stocké.
Notes
À partir d’une session R interactive, vous pouvez uniquement écrire dans le système de fichiers de l’espace de travail.
À partir d’une session R interactive, vous ne pouvez pas interagir avec MLflow (comme modèle de journal ou registre de requêtes).
Gérer l’ingestion et la préparation des données, l’entraînement et le déploiement des modèles, ainsi que la surveillance des solutions d’apprentissage automatique avec Python, Azure Machine Learning et MLflow.