Gestion des bibliothèques R
Les bibliothèques fournissent du code réutilisable que vous pouvez inclure dans vos programmes ou projets pour Microsoft Fabric Spark.
Microsoft Fabric prend en charge un runtime R avec de nombreux packages R open source populaires, y compris TidyVerse, préinstallés. Lorsqu’une instance Spark démarre, ces bibliothèques sont incluses automatiquement et peuvent être utilisées immédiatement dans les notebooks ou les définitions de travaux Spark.
Il est possible que vous deviez mettre à jour vos bibliothèques R pour différentes raisons. Par exemple, l’une de vos dépendances principales a publié une nouvelle version, ou votre équipe a créé un package personnalisé dont vous avez besoin dans vos clusters Spark.
Vous pouvez inclure deux types de bibliothèques en fonction de votre scénario :
Les bibliothèques de flux font référence à celles résidant dans des sources ou des référentiels publics, tels que CRAN ou GitHub.
Les bibliothèques personnalisées sont le code créé par vous ou votre organisation, .tar.gz peut être géré par le biais des portails de gestion des bibliothèques.
Deux niveaux de packages sont installés sur Microsoft Fabric :
Environnement : gérer les bibliothèques à travers un environnement pour réutiliser le même jeu de bibliothèques à travers plusieurs notebooks ou tâches.
Session : une installation de niveau session crée un environnement pour une session de notebook spécifique. La modification des bibliothèques de niveau session n’est pas persistante entre les sessions.
Résumé des comportements actuels de gestion des bibliothèques R disponibles :
Type de bibliothèque | Installation de l’environnement | Installation au niveau de la session |
---|---|---|
Flux R (CRAN) | Non pris en charge | Pris en charge |
R personnalisé | Prise en charge | Pris en charge |
Prérequis
Obtenir un abonnement Microsoft Fabric. Ou, inscrivez-vous pour un essai gratuit de Microsoft Fabric.
Connectez-vous à Microsoft Fabric.
Utilisez le sélecteur d’expérience sur le côté gauche de votre page d’accueil pour passer à l’expérience science des données Synapse.
Bibliothèques R au niveau de la session
Lors de l’analyse interactive des données ou du Machine Learning, il se peut que vous essayiez des packages plus récents ou que vous ayez besoin de packages qui ne sont pas disponibles actuellement dans votre espace de travail. Au lieu de mettre à jour les paramètres de l’espace de travail, vous pouvez utiliser des packages avec étendue de session pour ajouter, gérer et mettre à jour les dépendances de session.
- Lorsque vous installez des bibliothèques avec étendue de session, seul le notebook actif peut accéder aux bibliothèques spécifiées.
- Ces bibliothèques n’ont aucune incidence sur les autres sessions ou tâches qui utilisent le même pool Spark.
- Ces bibliothèques sont installées en plus du runtime de base et des bibliothèques de pools.
- Les bibliothèques de notebooks sont prioritaires.
- Les bibliothèques R délimitées à la session ne sont pas conservées entre les sessions. Ces bibliothèques sont installées au début de chaque session lorsque les commandes d’installation associées sont exécutées.
- Les bibliothèques R délimitées à la session sont automatiquement installées sur les nœuds worker et de pilote.
Remarque
Les commandes de gestion des bibliothèques R sont désactivées lors de l’exécution de travaux de pipeline. Si vous souhaitez installer un package dans un pipeline, vous devez utiliser des fonctionnalités de gestion des bibliothèques au niveau de l’espace de travail.
Installer des packages R à partir de CRAN
Vous pouvez facilement installer une bibliothèque R à partir de CRAN.
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
Vous pouvez également utiliser des instantanés CRAN en tant que référentiel pour vous assurer de télécharger la même version du package à chaque fois.
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
Installer des packages R à l’aide de devtools
La bibliothèque devtools
simplifie le développement de packages pour accélérer les tâches courantes. Cette bibliothèque est installée dans le runtime Microsoft Fabric par défaut.
Vous pouvez utiliser devtools
pour spécifier une version spécifique d’une bibliothèque à installer. Ces bibliothèques sont installées sur tous les nœuds du cluster.
# Install a specific version.
install_version("caesar", version = "1.0.0")
De même, vous pouvez installer une bibliothèque directement à partir de GitHub.
# Install a GitHub library.
install_github("jtilly/matchingR")
Actuellement, les fonctions devtools
suivantes sont prises en charge dans Microsoft Fabric :
Command | Description |
---|---|
install_github() | Installe un package R à partir de GitHub |
install_gitlab() | Installe un package R à partir de GitLab |
install_bitbucket() | Installe un package R à partir de BitBucket |
install_url() | Installe un package R à partir d’une URL arbitraire |
install_git() | Installe à partir d’un référentiel Git arbitraire |
install_local() | Installe à partir d’un fichier local sur le disque |
install_version() | Installe à partir d’une version spécifique sur CRAN |
Installer des bibliothèques R personnalisées
Pour utiliser une bibliothèque personnalisée au niveau de la session, vous devez d’abord la charger sur un lakehouse attaché.
Sur le côté gauche, sélectionnez Ajouter pour ajouter un lakehouse existant ou créer un lakehouse.
Pour ajouter des fichiers à ce lakehouse, sélectionnez votre espace de travail, puis sélectionnez le lakehouse.
Cliquez avec le bouton droit ou sélectionnez « ... » en regard de Fichiers pour charger votre fichier .tar.gz.
Après le chargement, revenez à votre notebook. Utilisez la commande suivante pour installer la bibliothèque personnalisée dans votre session :
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
Voir les bibliothèques installées
Interrogez toutes les bibliothèques installées dans votre session à l’aide de la commande library
.
# query all the libraries installed in current session
library()
Utilisez la fonction packageVersion
pour vérifier la version de la bibliothèque :
# check the package version
packageVersion("caesar")
Supprimer un package R d’une session
Vous pouvez utiliser la fonction detach
pour supprimer une bibliothèque de l’espace de noms. Ces bibliothèques restent sur disque jusqu’à ce qu’elles soient chargées à nouveau.
# detach a library
detach("package: caesar")
Pour supprimer un package à l’étendue d’une session d’un notebook, utilisez la commande remove.packages()
. Cette modification de bibliothèque n’a aucun impact sur les autres sessions sur le même cluster. Les utilisateurs ne peuvent pas désinstaller ni supprimer des bibliothèques intégrées du runtime Microsoft Fabric par défaut.
Remarque
Vous ne pouvez pas supprimer de packages principaux comme SparkR, SparklyR ou R.
remove.packages("caesar")
Bibliothèques R délimitées à une session et SparkR
Des bibliothèques à l’étendue du notebook sont disponibles sur les workers 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)
Bibliothèques R délimitées à une session et sparklyr
Avec spark_apply()
dans sparklyr, vous pouvez utiliser n’importe quel package R à l’intérieur de Spark. Par défaut, dans sparklyr::spark_apply()
, l’argument packages est défini sur la valeur FALSE. Cela copie les bibliothèques dans les libPaths actuels vers les Workers, ce qui vous permet de les importer et de les utiliser sur les Workers. Par exemple, vous pouvez exécuter ce qui suit pour générer un message chiffré en Caesar avec 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)
Contenu connexe
En savoir plus sur les fonctionnalités R :