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:
- Code importeren: importeer uw eigen code uit bestanden of Git-opslagplaatsen of probeer een zelfstudie die hieronder wordt vermeld. Databricks raadt aan om interactieve Azure Databricks-notebooks te gebruiken.
- 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:
- Werken met grotere gegevenssets met Apache Spark
- Visualisaties toevoegen
- Uw workload automatiseren als een taak
- Machine Learning gebruiken om uw gegevens te analyseren
- R-ontwikkelhulpprogramma's gebruiken
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 list kernfuncties en tips om u te helpen bij het 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
Belangrijk
SparkR in Databricks is verouderd verklaard in Databricks Runtime 16.0 en hoger. Databricks raadt aan om in plaats daarvan sparklyr- te gebruiken.
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, broom
en DBI.
SparkR en sparklyr vergelijken
In dit artikel worden belangrijke overeenkomsten en verschillen tussen SparkR en sparklyr uitgelegd.
Werken met DataFrames en tables met behulp van 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 tables in Azure Databricks.
Code beheren met notebooks en Databricks Git-mappen
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.
Met Azure Databricks Git-mappen kunnen gebruikers notebooks en andere bestanden synchroniseren met Git-opslagplaatsen. Git-mappen van Azure Databricks helpen bij het maken van codeversies en samenwerking. Het kan het importeren van een volledige opslagplaats met code vereenvoudigen in Azure Databricks, het bekijken van eerdere notebookversies en het integreren met IDE-ontwikkeling. Get begonnen met het klonen van een externe Git-opslagplaats. 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 Aanbevelingen voor compute-configuratie voor gedetailleerde tips.
- Beheerders kunnen set maximaal clusterbeleid om clustercreatie 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 SparkContext
notebook- 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 om toegang te ondersteunen tot tables 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.
- nl-NL: SparkR::dapply: de opgegeven functie wordt toegepast op elke partition van een
SparkDataFrame
. -
SparkR::dapplyCollect: Op elke partition van een
SparkDataFrame
wordt de opgegeven functie toegepast en de resultaten worden alsdata.frame
terug naar R verzameld. -
SparkR::gapply-: Groepeert
SparkDataFrame
's met behulp van de opgegeven columns en past de opgegeven R-functie toe op elke groep. -
SparkR::gapplyCollect: Hiermee groepeert u een
SparkDataFrame
met behulp van de opgegeven columns, past u de opgegeven R-functie toe op elke groep en verzamelt u het resultaat terug naar R als eendata.frame
. - SparkR::spark.lapply: hiermee wordt de opgegeven functie uitgevoerd op een list met elementen, waarbij de berekeningen met Spark worden gedistribueerd.
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 de Dockerfile- die wordt gebruikt om deze basisinstallatiekopieën te generate.
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:
Bouw uw aangepaste pakket vanaf de opdrachtregel of met behulp van RStudio.
Kopieer het aangepaste pakketbestand van uw ontwikkelcomputer naar uw Azure Databricks-werkruimte. Zie Bibliotheken voor opties.
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 notebooktaak in Azure Databricks.
- Zie Databricks-taken configureren en bewerken 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:
SparkR en RStudio Desktop gebruiken met Databricks Connect.
Sparklyr en RStudio Desktop gebruiken met Databricks Connect.
Aanpassing van R-sessie
In Databricks Runtime 12.2 LTS 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.site
u 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 LTS en lager kan dit gedrag worden ingeschakeld door de omgevingsvariabele DATABRICKS_ENABLE_RPROFILE=true
in te stellen.