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.

Important

Microsoft Fabric est actuellement en préversion. Certaines informations portent sur un produit en préversion susceptible d’être substantiellement modifié avant sa publication. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.

Microsoft Fabric prend en charge un runtime R avec de nombreux packages R open source populaires, y compris TidyVerse, préinstallés. Lorsqu’un 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.

Vous devrez peut-être 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 organization, .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 :

  • Espace de travail : l’installation au niveau de l’espace de travail définit l’environnement de travail pour l’ensemble de l’espace de travail. Les bibliothèques installées au niveau de l’espace de travail sont disponibles pour tous les notebooks et SJD de cet espace de travail. Mettez à jour les bibliothèques d’espace de travail lorsque vous souhaitez configurer l’environnement partagé pour tous les éléments d’un espace de travail.

  • Session : une installation au niveau de la 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 de la bibliothèque R disponibles :

Type de bibliothèque Installation au niveau de l’espace de travail Installation au niveau de la session
R Feed (CRAN) Non pris en charge Prise en charge
R Personnalisé Prise en charge Prise en charge

Prérequis

Gestion de la bibliothèque R au niveau de l’espace de travail

Gérez vos bibliothèques personnalisées au niveau de l’espace de travail dans les paramètres de l’espace de travail. Actuellement, R prend en charge uniquement les bibliothèques personnalisées dans les paramètres de l’espace de travail.

  1. Sélectionnez votre espace de travail.

  2. Sélectionnez Paramètres de l’espace de travail en haut de la page.

    Capture d’écran montrant l’emplacement des paramètres de l’espace de travail.

  3. Sélectionnez Ingénieurs de données/Gestion de labibliothèque →.

  4. Sélectionnez l’onglet Bibliothèques personnalisées.

Notes

  • Seul l’administrateur de l’espace de travail est autorisé à mettre à jour les paramètres au niveau de l’espace de travail.
  • La gestion des bibliothèques de flux R dans les paramètres de l’espace de travail n’est actuellement pas prise en charge.

Installez et gérez vos packages R personnalisés, c’est-à-dire .tar.gz dans la section Bibliothèques personnalisées .

  • Charger : sélectionnez le bouton Charger et sélectionnez votre package dans votre répertoire local. Sélectionnez ensuite Appliquer pour ajouter le package à l’espace de travail. Le module de gestion des bibliothèques vous aide à gérer les conflits potentiels et les dépendances requises dans vos bibliothèques personnalisées.

  • Supprimer : si une bibliothèque personnalisée n’est plus utile pour vos applications Spark, utilisez le bouton Corbeille pour la supprimer.

  • Examiner et appliquer les modifications : lorsque les modifications sont en attente, accédez au panneau Modifications en attente pour les examiner ou annuler une modification.

Bibliothèques R au niveau de la session

Lorsque vous effectuez une analyse de données interactive ou un machine learning, vous pouvez essayer des packages plus récents ou vous aurez peut-être besoin de packages qui ne sont actuellement pas disponibles sur votre espace de travail. Au lieu de mettre à jour les paramètres de l’espace de travail, vous pouvez utiliser des packages étendus à la session pour ajouter, gérer et mettre à jour des 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 pas d’impact sur les autres sessions ou travaux utilisant 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 ont la priorité la plus élevée.
  • 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.

Notes

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 les fonctionnalités de gestion de bibliothèque 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 suivantes devtools sont prises en charge dans Microsoft Fabric :

Commande 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 personnalisées R

Pour utiliser une bibliothèque personnalisée au niveau de la session, vous devez d’abord la charger sur un Lakehouse attaché.

  1. Sur le côté gauche, sélectionnez Ajouter pour ajouter un lakehouse existant ou créer un lakehouse.

    Capture d’écran montrant comment ajouter un lakehouse à votre notebook.

  2. Pour ajouter des fichiers à ce lakehouse, sélectionnez votre espace de travail, puis sélectionnez le lakehouse.

    Capture d’écran montrant comment accéder à votre lakehouse pour ajouter des fichiers.

  3. Cliquez avec le bouton droit ou sélectionnez « ... » en regard de Fichiers pour charger votre fichier .tar.gz .

    Capture d’écran montrant comment charger votre fichier dans le dossier lakehouse Files.

  4. Après le chargement, revenez à votre bloc-notes. 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 library commande .

# query all the libraries installed in current session
library()

Utilisez la packageVersion fonction pour case activée 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 ou supprimer les bibliothèques intégrées du runtime Microsoft Fabric par défaut.

Notes

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 étendues à la session et sparklyr

Avec spark_apply() sparklyr, vous pouvez utiliser n’importe quel package R à l’intérieur de Spark. Par défaut, dans sparklyr::spark_apply(), l’argument packages définit 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)

Étapes suivantes

En savoir plus sur les fonctionnalités R :