Azure Databricks voor R-ontwikkelaars

Deze sectie bevat een handleiding voor het ontwikkelen van notebooks en taken in Azure Databricks met behulp van de R-taal.

Een eenvoudige werkstroom voor het aan de slag gaan is:

  1. Code importeren: importeer uw eigen code uit bestanden of Git-opslagplaatsen of probeer een zelfstudie die hieronder wordt vermeld. Databricks raadt u aan om te leren met behulp van interactieve Azure Databricks-notebooks.
  2. Voer uw code uit op een cluster: maak een eigen cluster of zorg ervoor dat u gemachtigd bent om een gedeeld cluster te gebruiken. Koppel uw notebook aan het cluster en voer het notebook uit.

Verder kunt u zich vertakken naar meer specifieke onderwerpen:

Zelfstudies

De volgende zelfstudies bevatten voorbeeldcode en notebooks voor meer informatie over algemene werkstromen. Zie Een notitieblok importeren voor instructies over het importeren van notebookvoorbeelden in uw werkruimte.

Verwijzing

De volgende subsecties bevatten de belangrijkste functies en tips waarmee u kunt beginnen met ontwikkelen in Azure Databricks met R.

Azure Databricks ondersteunt twee API's die een R-interface bieden voor Apache Spark: SparkR en sparklyr.

SparkR

Deze artikelen bevatten een inleiding en naslaginformatie voor SparkR. SparkR is een R-interface voor Apache Spark die een gedistribueerde implementatie van een gegevensframe biedt. SparkR ondersteunt bewerkingen zoals selectie, filteren en aggregatie (vergelijkbaar met R-gegevensframes) maar op grote gegevenssets.

sparklyr

Dit artikel bevat een inleiding tot sparklyr. sparklyr is een R-interface voor Apache Spark die functionaliteit biedt die vergelijkbaar is met dplyr, broomen DBI.

SparkR en sparklyr vergelijken

In dit artikel worden belangrijke overeenkomsten en verschillen tussen SparkR en sparklyr uitgelegd.

Werken met DataFrames en tabellen met SparkR en sparklyr

In dit artikel wordt beschreven hoe u R-, SparkR-, sparklyr- en dplyr gebruikt om te werken met R data.frames, Spark DataFrames en Spark-tabellen in Azure Databricks.

Code beheren met notebooks en Databricks-opslagplaatsen

Azure Databricks-notebooks ondersteunen R. Deze notebooks bieden functionaliteit die vergelijkbaar is met die van Jupyter, maar met toevoegingen zoals ingebouwde visualisaties met behulp van big data, Apache Spark-integraties voor foutopsporing en prestatiebewaking en MLflow-integraties voor het bijhouden van machine learning-experimenten. Ga aan de slag door een notebook te importeren. Zodra u toegang hebt tot een cluster, kunt u een notebook aan het cluster koppelen en het notebook uitvoeren.

Met Azure Databricks-opslagplaatsen kunnen gebruikers notebooks en andere bestanden synchroniseren met Git-opslagplaatsen. Azure Databricks-opslagplaatsen helpt bij het maken en samenwerken van code en kan het importeren van een volledige opslagplaats met code in Azure Databricks vereenvoudigen, eerdere notebookversies bekijken en integreren met IDE-ontwikkeling. Ga aan de slag door een externe Git-opslagplaats te klonen. Vervolgens kunt u notebooks openen of maken met de kloon van de opslagplaats, het notebook koppelen aan een cluster en het notebook uitvoeren.

Clusters

Azure Databricks Compute biedt rekenbeheer voor zowel enkele knooppunten als grote clusters. U kunt clusterhardware en -bibliotheken aanpassen aan uw behoeften. Gegevenswetenschappers gaan over het algemeen aan de slag door een cluster te maken of een bestaand gedeeld cluster te gebruiken. Zodra u toegang hebt tot een cluster, kunt u een notebook aan het cluster koppelen of een taak uitvoeren op het cluster.

  • Voor kleine workloads waarvoor slechts één knooppunt nodig is, kunnen gegevenswetenschappers rekenkracht van één knooppunt gebruiken voor kostenbesparingen.
  • Zie best practices voor compute-configuratie voor gedetailleerde tips.
  • Beheer istrators kunnen clusterbeleid instellen om het maken van clusters te vereenvoudigen en te begeleiden.

Eén knooppunt R en gedistribueerde R

Azure Databricks-clusters bestaan uit een Apache Spark-stuurprogrammaknooppunt en nul of meer Spark Worker-knooppunten (ook wel uitvoerders genoemd). Het stuurprogrammaknooppunt behoudt de status van gekoppelde notebooks, onderhoudt de SparkContextnotebook- en bibliotheekopdrachten en voert de Spark-master uit die coördineert met Spark-uitvoerders. Werkknooppunten voeren de Spark-uitvoerders uit, één Spark-uitvoerprogramma per werkknooppunt.

Een cluster met één knooppunt heeft één stuurprogrammaknooppunt en geen werkknooppunten, waarbij Spark in de lokale modus wordt uitgevoerd ter ondersteuning van toegang tot tabellen die worden beheerd door Azure Databricks. Clusters met één knooppunt ondersteunen RStudio, notebooks en bibliotheken en zijn handig voor R-projecten die niet afhankelijk zijn van Spark voor big data of parallelle verwerking. Zie Rekenproces met één knooppunt of meerdere knooppunten.

Voor gegevensgrootten die R moeilijk kan verwerken (veel gigabytes of petabytes), moet u in plaats daarvan meerdere knooppunten of gedistribueerde clusters gebruiken. Gedistribueerde clusters hebben één stuurprogrammaknooppunt en een of meer werkknooppunten. Gedistribueerde clusters ondersteunen niet alleen RStudio, notebooks en bibliotheken, maar R-pakketten zoals SparkR en sparkly, die uniek zijn ontworpen voor het gebruik van gedistribueerde clusters via de SparkContext. Deze pakketten bieden vertrouwde SQL- en DataFrame-API's, waarmee u verschillende Spark-taken en -opdrachten parallel kunt toewijzen en uitvoeren op werkknooppunten. Zie SparkR en sparklyr vergelijken voor meer informatie over sparklyr en SparkR.

Sommige SparkR- en sparklyr-functies die met name profiteren van het distribueren van gerelateerd werk over werkknooppunten, zijn onder andere:

  • sparklyr::spark_apply: voert willekeurige R-code op schaal uit binnen een cluster. Dit is vooral handig voor het gebruik van functionaliteit die alleen beschikbaar is in R- of R-pakketten die niet beschikbaar zijn in Apache Spark of andere Spark-pakketten.
  • SparkR::d apply: De opgegeven functie wordt toegepast op elke partitie van een SparkDataFrame.
  • SparkR::d applyCollect: past de opgegeven functie toe op elke partitie van een SparkDataFrame en verzamelt de resultaten terug naar R als een data.frame.
  • SparkR::gapply: Groepeer een SparkDataFrame met behulp van de opgegeven kolommen en past de opgegeven R-functie toe op elke groep.
  • SparkR::gapplyCollect: Groepeert een SparkDataFrame met behulp van de opgegeven kolommen, past de opgegeven R-functie toe op elke groep en verzamelt het resultaat terug naar R als een data.frame.
  • SparkR::spark.lapply: voert de opgegeven functie uit op een lijst met elementen, waarbij de berekeningen worden gedistribueerd met Spark.

Zie voor voorbeelden de gedistribueerde R-notebook : door de gebruiker gedefinieerde functies in Spark.

Databricks Container Services

Met Databricks Container Services kunt u een Docker-installatiekopieën opgeven wanneer u een cluster maakt. Databricks biedt de databricksruntime/rbase-basisinstallatiekopieën op Docker Hub als voorbeeld voor het starten van een Databricks Container Services-cluster met R-ondersteuning. Zie ook het Dockerfile dat wordt gebruikt om deze basisinstallatiekopieën te genereren.

Bibliotheken

Azure Databricks-clusters maken gebruik van Databricks Runtime, dat veel populaire bibliotheken standaard biedt, waaronder Apache Spark, Delta Lake en meer. U kunt ook aanvullende R-pakketten van derden of aangepaste R-pakketten installeren in bibliotheken voor gebruik met notebooks en taken.

Begin met de standaardbibliotheken in de releaseversies en compatibiliteit van Databricks Runtime. Databricks Runtime voor Machine Learning gebruiken voor machine learning-workloads. Zie de sectie Geïnstalleerde R-bibliotheken voor de doel-Databricks Runtime in de releaseversies en compatibiliteit van Databricks Runtime voor volledige lijsten met vooraf geïnstalleerde bibliotheken.

U kunt uw omgeving aanpassen met behulp van R-bibliotheken met notebookbereik, waarmee u uw notebook- of taakomgeving kunt wijzigen met bibliotheken van CRAN of andere opslagplaatsen. Hiervoor kunt u de vertrouwde functie install.packages van utils. In het volgende voorbeeld wordt het Arrow R-pakket geïnstalleerd vanuit de standaard CRAN-opslagplaats:

install.packages("arrow")

Als u een oudere versie nodig hebt dan wat is opgenomen in de Databricks Runtime, kunt u een notebook gebruiken om install_version functie uit te voeren.devtools In het volgende voorbeeld wordt dplyr versie 0.7.4 van CRAN geïnstalleerd:

require(devtools)

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

Pakketten die op deze manier zijn geïnstalleerd, zijn beschikbaar in een cluster. Ze zijn gericht op de gebruiker die ze installeert. Hierdoor kunt u meerdere versies van hetzelfde pakket op dezelfde rekenkracht installeren zonder pakketconflicten te maken.

U kunt andere bibliotheken zo nodig installeren als clusterbibliotheken , bijvoorbeeld van CRAN. Klik hiervoor in de gebruikersinterface van het cluster op Bibliotheken > installeren nieuwe > CRAN en geef de naam van de bibliotheek op. Deze aanpak is vooral belangrijk wanneer u door de gebruiker gedefinieerde functies wilt aanroepen met SparkR of sparklyr.

Zie Bibliotheken voor meer informatie.

Een aangepast pakket installeren in een bibliotheek:

  1. Bouw uw aangepaste pakket vanaf de opdrachtregel of met behulp van RStudio.

  2. Kopieer het aangepaste pakketbestand van uw ontwikkelcomputer naar uw Azure Databricks-werkruimte. Zie Bibliotheken voor opties.

  3. Installeer het aangepaste pakket in een bibliotheek door uit te voeren install.packages.

    Bijvoorbeeld vanuit een notitieblok in uw werkruimte:

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

    Of:

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

Nadat u een aangepast pakket in een bibliotheek hebt geïnstalleerd, voegt u de bibliotheek toe aan het zoekpad en laadt u de bibliotheek vervolgens met één opdracht.

Voorbeeld:

# 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>)

Als u een aangepast pakket wilt installeren als bibliotheek op elk knooppunt in een cluster, moet u Wat zijn init-scripts? gebruiken.

Visualisaties

Azure Databricks R-notebooks ondersteunen verschillende typen visualisaties met behulp van de display functie.

Projecten

U kunt R-workloads automatiseren als geplande of geactiveerde notebook Azure Databricks-taken maken en uitvoeren in Azure Databricks.

  • Zie Een taak maken voor meer informatie over het maken van een taak via de gebruikersinterface.
  • Met de Taken-API kunt u taken maken, bewerken en verwijderen.
  • De Databricks CLI biedt een handige opdrachtregelinterface voor het aanroepen van de Jobs-API.

Machinelearning

Databricks ondersteunt een groot aantal machine learning-workloads (ML), waaronder traditionele ML op tabellaire gegevens, deep learning voor computer vision en verwerking van natuurlijke taal, aanbevelingssystemen, grafiekanalyses en meer. Zie Databricks Runtime voor Machine Learning voor Machine Learning voor algemene informatie over machine learning in Azure Databricks.

Voor ML-algoritmen kunt u vooraf geïnstalleerde bibliotheken gebruiken in Databricks Runtime voor Machine Learning. U kunt ook aangepaste bibliotheken installeren.

Voor machine learning-bewerkingen (MLOps) biedt Azure Databricks een beheerde service voor de opensource-bibliotheek MLflow. Met MLflow Tracking kunt u modelontwikkeling vastleggen en modellen opslaan in herbruikbare indelingen. U kunt het MLflow-modelregister gebruiken om de promotie van modellen naar productie te beheren en automatiseren. Taken en modelservice bieden hostingmodellen als batch- en streamingtaken als REST-eindpunten. Zie het levenscyclusbeheer van ML met behulp van MLflow of de MLflow R API-documenten voor meer informatie en voorbeelden.

R-ontwikkelhulpprogramma's

Naast Azure Databricks-notebooks kunt u ook de volgende R-ontwikkelhulpprogramma's gebruiken:

Aanpassing van R-sessie

In Databricks Runtime 12.0 en hoger kunnen R-sessies worden aangepast met behulp van profielbestanden voor.Rprofile de hele site. R-notebooks genereren het bestand als R-code tijdens het opstarten. Als u het bestand wilt wijzigen, zoekt u de waarde van R_HOME en wijzigt $R_HOME/etc/Rprofile.siteu het. Databricks heeft configuratie toegevoegd aan het bestand om de juiste functionaliteit voor gehoste RStudio in Azure Databricks te garanderen. Als u een van deze gegevens verwijdert, werkt RStudio mogelijk niet zoals verwacht.

In Databricks Runtime 11.3 en lager kan dit gedrag worden ingeschakeld door de omgevingsvariabele DATABRICKS_ENABLE_RPROFILE=truein te stellen.

Aanvullende bronnen