Aller au contenu principal

Databricks pour les développeurs R

Cette page fournit une vue d’ensemble pour le développement de notebooks et de jobs dans Databricks en utilisant le langage R.

Didacticiels

Les tutoriels suivants fournissent des exemples de code et des 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 Workspace.

Comparaison entre SparkR et sparklyr

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

Pour une comparaison de SparkR et sparklyr, consultez Comparaison de SparkR et sparklyr.

SparkR

important

SparkR dans Databricks est déprécié dans Databricks Runtime 16.0 et versions ultérieures. Databricks recommande de migrer vers sparklyr. Consultez Migrer de SparkR vers sparklyr.

SparkR est une interface R pour Apache Spark qui fournit une implémentation de cadre de données distribué. SparkR prend en charge les opérations telles que la sélection, le filtrage et l'agrégation (similaire aux data frames R) sur de grands datasets. Les articles suivants fournissent une introduction à SparkR.

sparklyr

sparklyr est une interface R pour Apache Spark qui fournit des fonctionnalités similaires à dplyr, broom et DBI. L'article suivant présente une introduction à sparklyr.

Travailler avec des DataFrames et des tables en R

L'article suivant décrit comment utiliser R, SparkR, sparklyr et dplyr pour travailler avec des data.frames R, des DataFrames Spark et des tables Spark dans Databricks.

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

Les Notebooks Databricks prennent en charge R. Ces Notebooks offrent des fonctionnalités similaires à celles de Jupyter, mais avec des ajouts tels que des visualisations intégrées utilisant le Big Data, des intégrations Apache Spark pour le debugging et le monitoring des performances, et des intégrations MLflow pour le suivi des expérimentations de Machine Learning. Commencez par importer un Notebook. Une fois que vous avez accès à un cluster, vous pouvez associer un Notebook au cluster et exécuter le Notebook.

Les dossiers Git Databricks permettent aux utilisateurs de synchroniser les Notebooks et d'autres fichiers avec des référentiels Git. Les dossiers Git Databricks facilitent le versionnement et la collaboration de code, et peuvent simplifier l'importation d'un repository complet de code dans Databricks, la visualisation des versions antérieures de notebook et l'intégration avec le développement IDE. start en clonant un repository Git distant. Vous pouvez ensuite ouvrir ou créer des notebooks avec le clone du repository, attacher le notebook à un cluster, et exécuter le notebook.

clusters

Les compute Databricks fournissent une gestion des compute pour les nœuds uniques et les grands clusters. Vous pouvez personnaliser le matériel et les bibliothèques des clusters en fonction de vos besoins. Une fois que vous avez accès à un cluster, vous pouvez attacher un notebook au cluster ou exécuter un Job sur le cluster.

R à nœud unique et R distribué

Les clusters Databricks se composent d'un nœud driver Apache Spark et de zéro ou plusieurs nœuds worker Spark (également appelés executor ). Le nœud du Driver maintient l’état du Notebook attaché, maintient le SparkContext, interprète les commandes du Notebook et de la 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 possède un nœud Driver et aucun nœud Worker, avec Spark s'exécutant en mode local pour prendre en charge l'accès aux tables gérées par 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. Voir compute à nœud unique.

Pour les tailles de données que R a du mal à traiter (plusieurs gigaoctets ou pétaoctets), vous devriez plutôt utiliser des clusters multi-nœuds ou *distribués*. Les clusters distribués comportent un nœud Driver et un ou plusieurs nœuds Worker. Les clusters distribués prennent en charge non seulement RStudio, les Notebooks et les bibliothèques, mais aussi des packages R tels que SparkR et sparklyr, qui sont spécifiquement conçus pour utiliser des clusters distribués via le SparkContext. Ces packages fournissent des API SQL et DataFrame familières, ce qui permet d'attribuer et d'exécuter diverses tâches et commandes Spark en parallèle sur les nœuds worker. Pour en savoir plus sur sparklyr et SparkR, consultez Comparaison entre SparkR et sparklyr.

Certaines fonctions SparkR et sparklyr qui tirent particulièrement parti de la distribution du travail associé entre les nœuds worker incluent les éléments suivants :

  • sparklyr::spark_apply: exécute du code R arbitraire à grande échelle au sein d'un cluster. Ceci est particulièrement utile pour utiliser des fonctionnalités disponibles uniquement dans R, ou des packages 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 rassemble les résultats dans R en tant que data.frame.
  • SparkR::gapply: Regroupe un(e) SparkDataFrame en utilisant les colonnes spécifiées et applique la fonction R spécifiée à chaque groupe.
  • SparkR::gapplyCollect: Regroupe un SparkDataFrame en utilisant les 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 des exemples, consultez le Notebook R distribué : fonctions définies par l'utilisateur dans Spark.

Databricks Container Services

Databricks Container Services 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. Voir aussi le Dockerfile qui est utilisé pour générer cette image de base.

Bibliothèques

Les clusters Databricks utilisent le Databricks Runtime, qui fournit de nombreuses bibliothèques populaires par défaut, notamment Apache Spark, Delta Lake, et plus encore. Vous pouvez également installer des packages R tiers ou personnalisés supplémentaires dans des bibliothèques à utiliser avec des notebooks et des Jobs.

Commencez par les bibliothèques par défaut dans les versions et compatibilité des notes de version de Databricks Runtime. Utilisez Databricks Runtime for Machine Learning pour les charges de travail de machine learning. Pour les listes complètes des bibliothèques préinstallées, consultez la section « Bibliothèques R installées » pour le Databricks Runtime cible dans les versions et compatibilité des notes de version de Databricks Runtime.

Vous pouvez personnaliser votre environnement en utilisant des bibliothèques R à l'échelle du Notebook, qui vous permettent de modifier votre environnement de Notebook ou de Job avec des bibliothèques de CRAN ou d'autres repositories. Pour ce faire, vous pouvez utiliser la fonction familière install.packages de utils. L'exemple suivant installe le package R Arrow à partir du repository CRAN par défaut :

R
install.packages("arrow")

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

R
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 sur l'ensemble d'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 compute sans créer de conflits de packages.

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

Pour plus de détails, consultez Installer des bibliothèques.

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

  1. Créez votre package personnalisé à partir de la ligne de commande ou en utilisant RStudio.

  2. Copiez le fichier package personnalisé de votre machine de développement vers votre Databricks Workspace. Pour les options, voir Installer les bibliothèques.

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

    Par exemple, à partir d'un notebook dans votre Workspace :

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

    Ou :

    Bash
    %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 :

R
# 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 Que sont les scripts d'initialisation?.

Visualisations

Les Notebooks R Databricks prennent en charge différents types de visualisations à l'aide de la fonction display.

Jobs

Vous pouvez automatiser les workloads R en tant que Job Notebook planifié ou Trigger dans Databricks.

Machine Learning

Databricks prend en charge une grande variété de charges de travail de Machine Learning (ML), y compris le ML traditionnel sur données tabulaires, l'apprentissage profond pour la vision par ordinateur et le traitement du langage naturel, les systèmes de recommandation, l'analytique de graphes, et plus encore. Pour des informations générales sur le Machine Learning sur Databricks, consultez Databricks Runtime for Machine Learning.

Pour les algorithmes ML, vous pouvez utiliser des bibliothèques préinstallées dans Databricks Runtime for Machine Learning. Vous pouvez aussi installer des bibliothèques personnalisées.

Pour les opérations de Machine Learning (MLOps), Databricks fournit un service géré pour la bibliothèque open source MLflow. Avec MLflow Tracking, vous pouvez enregistrer le développement de modèles et les sauvegarder dans des formats réutilisables. Vous pouvez utiliser le MLflow Model Registry pour gérer et automatiser la promotion des modèles vers la production. Les Jobs et le Model Serving permettent d'héberger des modèles sous forme de jobs batch et de streaming en tant qu'Endpoint REST. Pour plus d'informations et d'exemples, consultez la page MLflow sur Databricks ou la documentation de l'API R MLflow.

Outils pour les développeurs R

En plus des notebooks 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, les sessions R peuvent être personnalisées en utilisant des fichiers de profil (.Rprofile) à l'échelle du site. Les Notebooks R sourceront le fichier en tant que code R durant le Startup. Pour modifier le fichier, recherchez la valeur de R_HOME et modifiez $R_HOME/etc/Rprofile.site.

Databricks a ajouté une configuration dans le fichier pour assurer le bon fonctionnement de RStudio hébergé. La suppression de l'un de ces éléments peut empêcher RStudio de fonctionner comme prévu.

Dans Databricks Runtime 11.3 LTS et versions inférieures, ce comportement peut être activé en définissant la variable d'environnement DATABRICKS_ENABLE_RPROFILE=true.

Ressources supplémentaires