Partager via


Azure Databricks pour les développeurs R

Cette section fournit un guide pour développer des notebooks et des travaux dans Azure Databricks avec le langage R.

Un workflow de base pour la prise en main est :

  1. Importer du code : Importez votre propre code à partir de fichiers ou de référentiels Git, ou essayez l’un des tutoriels répertoriés ci-dessous. Databricks recommande d’apprendre à utiliser les notebooks interactifs Azure Databricks.
  2. Exécutez votre code sur un cluster : créez un cluster vous-même ou vérifiez que vous disposez des autorisations nécessaires pour utiliser un cluster partagé. Attachez votre notebook au cluster et exécutez le notebook.

Au-delà de cela, vous pouvez vous tourner vers des rubriques plus spécifiques :

Tutoriels

Les tutoriels suivants fournissent des exemples de code et de notebooks pour en savoir plus sur les workflows courants. Consultez Importer un notebook pour obtenir des instructions sur l’importation d’exemples de notebooks dans votre espace de travail.

Informations de référence

Les sous-sections suivantes listent les principales fonctionnalités et des conseils pour vous aider à commencer à développer dans Azure Databricks avec R.

Azure Databricks prend en charge deux API qui fournissent une interface R pour Apache Spark : SparkR et sparklyr.

SparkR

Ces articles offrent une introduction et des informations de référence sur SparkR. SparkR est une interface R pour Apache Spark qui fournit une implémentation de trame de données distribuée. SparkR prend en charge des opérations telles que la sélection, le filtrage et l’agrégation (comme les trames de données R) mais sur des jeux de données volumineux.

sparklyr

Cet article offre une introduction à sparklyr. sparklyr est une interface R pour Apache Spark qui fournit des fonctionnalités similaires à dplyr, broom et DBI.

Comparaison de SparkR et sparklyr

Cet article explique les principales similitudes et différences entre SparkR et sparklyr.

Utiliser des DataFrames et des tableaux avec SparkR et sparklyr

Cet article décrit comment utiliser R, SparkR, sparklyr et dplyr pour utiliser les data.frames R, Spark DataFrames et des tableaux dans Azure Databricks.

Gérer le code avec des notebooks et des dossiers Git Databricks

Les notebooks Azure Databricks prennent en charge R. Ces notebooks fournissent des fonctionnalités similaires à celles de Jupyter, mais avec des ajouts tels que des visualisations intégrées à l’aide du Big Data, des intégrations Apache Spark pour le débogage et le monitoring des performances, et des intégrations MLflow pour le suivi des expériences de Machine Learning. Commencez en important un notebook. Une fois que vous avez accès à un cluster, vous pouvez attacher un notebook au cluster et exécuter le notebook.

Les Dossiers Git d’Azure Databricks permettent aux utilisateurs de synchroniser des notebooks et d’autres fichiers avec des référentiels Git. Les dossiers Git d’Azure Databricks facilitent la gestion des versions du code et la collaboration, et peuvent simplifier l’importation d’un référentiel complet de code dans Azure Databricks, la visualisation des versions antérieures du notebook, et l’intégration avec le développement de l’environnement de développement intégré (IDE). Commencez en clonant un référentiel Git distant. Vous pouvez ensuite ouvrir ou créer des notebooks avec le clone du référentiel, attacher le notebook à un cluster et exécuter le notebook.

Clusters

Les capacités de calcul Azure Databricks fournissent une gestion du calcul pour les nœuds uniques, mais aussi les clusters volumineux. Vous pouvez personnaliser le matériel et les bibliothèques de cluster en fonction de vos besoins. Les scientifiques des données commencent généralement à travailler en créant un cluster ou en utilisant un cluster partagé existant. Une fois que vous avez accès à un cluster, vous pouvez attacher un notebook au cluster ou exécuter un travail sur le cluster.

R à nœud unique et R distribué

Les clusters Azure Databricks se composent d’un nœud de pilote Apache Spark et de zéro ou plusieurs nœuds de travail Spark (également appelés exécuteurs). Le nœud de pilote conserve l’état du bloc-notes attaché, gère les SparkContextcommandes de notebook et de bibliothèque , interprète les commandes de notebook et de bibliothèque, et exécute le maître Spark qui se coordonne avec les exécuteurs Spark. Les nœuds Worker exécutent les exécuteurs Spark, un exécuteur Spark par nœud worker.

Un cluster à nœud unique a un nœud pilote et aucun nœud Worker, Spark s’exécutant en mode local pour prendre en charge l’accès aux tables gérées par Azure Databricks. Les clusters à nœud unique prennent en charge RStudio, les notebooks et les bibliothèques, et sont utiles pour les projets R qui ne dépendent pas de Spark pour le Big Data ou le traitement parallèle. Consultez Calcul à nœud unique ou à nœuds multiples.

Pour les tailles de données que R a du mal à traiter (plusieurs gigaoctets ou pétaoctets), vous devez utiliser des clusters à plusieurs nœuds ou distribués à la place. Les clusters distribués ont un nœud de pilote et un ou plusieurs nœuds Worker. Les clusters distribués prennent en charge non seulement RStudio, les notebooks et les bibliothèques, mais également les packages R tels que SparkR et sparkly qui sont conçus de manière unique pour utiliser des clusters distribués via le SparkContext. Ces packages fournissent des API SQL et DataFrame familières, qui permettent d’attribuer et d’exécuter diverses tâches et commandes Spark en parallèle entre les nœuds Worker. Pour en savoir plus sur sparklyr et SparkR, consultez Comparaison de SparkR et sparklyr.

Voici quelques fonctions SparkR et sparklyr qui tirent particulièrement parti de la distribution du travail associé entre les nœuds Worker :

  • sparklyr::spark_apply : exécute du code R arbitraire à grande échelle au sein d’un cluster. Cela est particulièrement utile pour utiliser des fonctionnalités disponibles uniquement dans les packages R ou R qui ne sont pas disponibles dans Apache Spark ni dans d’autres packages Spark.
  • SparkR::dapply : applique la fonction spécifiée à chaque partition d’un SparkDataFrame.
  • SparkR::dapplyCollect : applique la fonction spécifiée à chaque partition d’un SparkDataFrame et collecte les résultats sur R en tant que data.frame.
  • SparkR::gapply : regroupe un SparkDataFrame à l’aide des colonnes spécifiées et applique la fonction R spécifiée à chaque groupe.
  • SparkR::gapplyCollect : regroupe un SparkDataFrame à l’aide des colonnes spécifiées, applique la fonction R spécifiée à chaque groupe et collecte le résultat dans R en tant que data.frame.
  • SparkR::spark.lapply : exécute la fonction spécifiée sur une liste d’éléments, en distribuant les calculs avec Spark.

Pour obtenir des exemples, consultez le notebook Distributed R: User Defined Functions dans Spark.

Services conteneur Databricks

Services conteneur Databricks vous permet de spécifier une image Docker lorsque vous créez un cluster. Databricks fournit l’image de base databricksruntime/rbase sur Docker Hub à titre d’exemple pour lancer un cluster Databricks Container Services avec prise en charge de R. Consultez égalementDockerfile utilisé pour générer cette image de base.

Bibliothèques

Les clusters Azure Databricks utilisent le runtime Databricks, qui fournit de nombreuses bibliothèques populaires prêtes à l’emploi, notamment Apache Spark, Delta Lake, etc. Vous pouvez également installer des packages R tiers ou personnalisés supplémentaires dans des bibliothèques pour les utiliser avec les notebooks et les travaux.

Commencez par les bibliothèques par défaut dans les Notes de publication sur les versions et la compatibilité de Databricks Runtime. Utilisez Databricks Runtime pour le Machine Learning pour les charges de travail de Machine Learning. Pour obtenir la liste complète des bibliothèques préinstallées, consultez la section « Bibliothèques R installées » pour la cible Databricks Runtime dans les versions et compatibilité des notes de publication de Databricks Runtime.

Vous pouvez personnaliser votre environnement en utilisant les bibliothèques R étendues au notebook, ce qui vous permet de modifier votre notebook ou votre environnement de travail avec des bibliothèques à partir du dépôt CRAN ou d’autres dépôts. Pour ce faire, vous pouvez utiliser la fonction familière install.packages à partir de utils. L’exemple suivant installe le package R Arrow à partir du dépôt CRAN par défaut :

install.packages("arrow")

Si vous avez besoin d’une version antérieure à celle incluse dans Databricks Runtime, vous pouvez utiliser un notebook pour exécuter la fonction install_version à partir de devtools. L’exemple suivant installe dplyr version 0.7.4 à partir de CRAN :

require(devtools)

install_version(
  package = "dplyr",
  version = "0.7.4",
  repos   = "http://cran.r-project.org"
)

Les packages installés de cette manière sont disponibles dans un cluster. Ils sont limités à l’utilisateur qui les installe. Cela vous permet d’installer plusieurs versions du même package sur le même ordinateur sans créer de conflits de packages.

Vous pouvez installer d’autres bibliothèques en tant que bibliothèques de cluster selon les besoins, par exemple à partir de CRAN. Pour ce faire, dans l’interface utilisateur du cluster, cliquez sur Bibliothèques > Installer >CRAN, puis spécifiez le nom de la bibliothèque. Cette approche est particulièrement importante quand vous souhaitez appeler des fonctions définies par l’utilisateur avec SparkR ou sparklyr.

Pour plus d’informations, consultez Bibliothèques.

Pour installer un package personnalisé dans une bibliothèque :

  1. Générez votre package personnalisé à partir de la ligne de commande ou en utilisant RStudio.

  2. Copiez le fichier de package personnalisé de votre ordinateur de développement sur votre espace de travail Azure Databricks. Pour obtenir des options, consultez Bibliothèques.

  3. Installez le package personnalisé dans une bibliothèque en exécutant install.packages.

    Par exemple, à partir d’un notebook dans votre espace de travail :

    install.packages(
      pkgs  = "/path/to/tar/file/<custom-package>.tar.gz",
      type  = "source",
      repos = NULL
    )
    

    Ou :

    %sh
    R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
    

Après avoir installé un package personnalisé dans une bibliothèque, ajoutez la bibliothèque au chemin de recherche, puis chargez la bibliothèque avec une seule commande.

Par exemple :

# Add the library to the search path one time.
.libPaths(c("/path/to/tar/file/", .libPaths()))

# Load the library. You do not need to add the library to the search path again.
library(<custom-package>)

Pour installer un package personnalisé en tant que bibliothèque sur chaque nœud d’un cluster, vous devez utiliser des Que sont les scripts d’initialisation ?.

Visualisations

Les notebooks R Azure Databricks prennent en charge différents types de visualisations avec la fonction display.

travaux

Vous pouvez automatiser des charges de travail R en tant que notebook planifié ou déclenché (Créer et exécuter des travaux Azure Databricks) dans Azure Databricks.

  • Pour plus d’informations sur la création d’un travail via l’interface utilisateur, consultez Créer un travail.
  • L’API de travaux vous permet de créer, modifier et supprimer des travaux.
  • CLI Databricks fournit une interface de ligne de commande pratique pour appeler l’API Travaux.

Machine Learning

Databricks prend en charge un large éventail de charges de travail de Machine Learning (ML), notamment le ML traditionnel sur les données tabulaires, le Deep Learning pour le traitement de la vision par ordinateur et du langage naturel, les systèmes de recommandation, l’analytique des graphiques, etc. Pour obtenir des informations générales concernant le Machine Learning sur Azure Databricks, consultez Databricks Runtime pour le Machine Learning.

Pour les algorithmes de Machine Learning, vous pouvez utiliser des bibliothèques préinstallées dans Databricks Runtime pour le Machine Learning. Vous pouvez également installer des bibliothèques personnalisées.

Dans le cadre des opérations de machine learning (MLOps), Azure Databricks fournit un service managé pour la bibliothèque open source MLflow. Avec MLflow Tracking, vous pouvez enregistrer le développement de modèles et enregistrer des modèles dans des formats réutilisables. Vous pouvez utiliser le registre de modèles MLflow pour gérer et automatiser la promotion des modèles vers la production. Travaux et Service de modèles permettent d’héberger des modèles en tant que lots et de diffuser en continu des travaux en tant que points de terminaison REST. Pour obtenir plus d’informations et des exemples, consultez la gestion du cycle de vie du ML avec MLflow ou la documentation de l’API R MLflow.

Outils de développement R

En plus des notebooks Azure Databricks, vous pouvez également utiliser les outils de développement R suivants :

Personnalisation de session R

Dans Databricks Runtime 12.2 LTS et versions ultérieures, vous pouvez personnaliser des sessions R à l’aide de fichiers de profil à l’échelle du site (.Rprofile). Les notebooks R devront sourcer le fichier en tant que code R au démarrage. Pour modifier le fichier, recherchez la valeur de R_HOME et modifiez $R_HOME/etc/Rprofile.site. Notez que Databricks a ajouté la configuration dans le fichier pour garantir les fonctionnalités appropriées pour RStudio hébergé sur Azure Databricks. La suppression de l’un d’entre elles peut entraîner le fonctionnement de RStudio comme prévu.

Dans Databricks Runtime 11.3 LTS et versions antérieures, vous pouvez activer ce comportement en définissant la variable d’environnement DATABRICKS_ENABLE_RPROFILE=true.

Ressources supplémentaires