Azure Databricks för R-utvecklare
Det här avsnittet innehåller en guide för att utveckla notebook-filer och jobb i Azure Databricks med hjälp av R-språket.
Ett grundläggande arbetsflöde för att komma igång är:
- Importkod: Importera din egen kod från filer eller Git-lagringsplatser eller prova en självstudie som visas nedan. Databricks rekommenderar att du lär dig att använda interaktiva Azure Databricks-notebook-filer.
- Kör koden i ett kluster: Skapa antingen ett eget kluster eller se till att du har behörighet att använda ett delat kluster. Koppla anteckningsboken till klustret och kör notebook-filen.
Utöver detta kan du förgrena dig till mer specifika ämnen:
- Arbeta med större datamängder med Apache Spark
- Lägga till visualiseringar
- Automatisera din arbetsbelastning som ett jobb
- Använda maskininlärning för att analysera dina data
- Använda R-utvecklarverktyg
Självstudier
Följande självstudier innehåller exempelkod och notebook-filer för att lära dig mer om vanliga arbetsflöden. Mer information om hur du importerar notebook-exempel till din arbetsyta finns i Importera en notebook-fil .
Referens
Följande underavsnitt visar viktiga funktioner och tips som hjälper dig att börja utveckla i Azure Databricks med R.
Azure Databricks stöder två API:er som tillhandahåller ett R-gränssnitt till Apache Spark: SparkR och sparklyr.
SparkR
De här artiklarna innehåller en introduktion och referens för SparkR. SparkR är ett R-gränssnitt till Apache Spark som tillhandahåller en distribuerad dataramimplementering. SparkR stöder åtgärder som markering, filtrering och aggregering (liknar R-dataramar) men på stora datauppsättningar.
sparklyr
Den här artikeln innehåller en introduktion till sparklyr. sparklyr är ett R-gränssnitt till Apache Spark som tillhandahåller funktioner som liknar dplyr, broom
, och DBI.
Jämföra SparkR och sparklyr
Den här artikeln förklarar viktiga likheter och skillnader mellan SparkR och sparklyr.
Arbeta med DataFrames och tabeller med SparkR och sparklyr
Den här artikeln beskriver hur du använder R-, SparkR-, sparklyr- och dplyr-tabeller för att arbeta med R-data.frames, Spark DataFrames och Spark-tabeller i Azure Databricks.
Hantera kod med notebook-filer och Databricks Git-mappar
Azure Databricks Notebooks har stöd för R. Dessa notebook-filer tillhandahåller funktioner som liknar Jupyter, men med tillägg som inbyggda visualiseringar med stordata, Apache Spark-integreringar för felsökning och prestandaövervakning och MLflow-integreringar för att spåra maskininlärningsexperiment. Kom igång genom att importera en notebook-fil. När du har åtkomst till ett kluster kan du koppla en notebook-fil till klustret och köra notebook-filen.
Med Azure Databricks Git-mappar kan användare synkronisera notebook-filer och andra filer med Git-lagringsplatser. Azure Databricks Git-mappar hjälper till med kodversioner och samarbete, och det kan förenkla importen av en fullständig lagringsplats med kod till Azure Databricks, visa tidigare notebook-versioner och integrera med IDE-utveckling. Kom igång genom att klona en fjärransluten Git-lagringsplats. Du kan sedan öppna eller skapa notebook-filer med lagringsplatsens klon, koppla anteckningsboken till ett kluster och köra notebook-filen.
Kluster
Azure Databricks-beräkning tillhandahåller beräkningshantering för både enskilda noder och stora kluster. Du kan anpassa klustermaskinvara och bibliotek efter dina behov. Dataexperter börjar vanligtvis arbeta antingen genom att skapa ett kluster eller använda ett befintligt delat kluster. När du har åtkomst till ett kluster kan du koppla en notebook-fil till klustret eller köra ett jobb i klustret.
- För små arbetsbelastningar som bara kräver enskilda noder kan dataexperter använda beräkning med en nod för kostnadsbesparingar.
- Detaljerade tips finns i rekommendationer för beräkningskonfiguration.
- Administratörer kan konfigurera klusterprinciper för att förenkla och vägleda skapandet av kluster.
Enskild nod R och distribuerad R
Azure Databricks-kluster består av en Apache Spark-drivrutinsnod och noll eller fler Spark-arbetsnoder (kallas även körkörning). Drivrutinsnoden upprätthåller anslutna notebook-tillstånd, underhåller SparkContext
, tolkar notebook- och bibliotekskommandon och kör Spark-huvudservern som samordnar med Spark-köre. Arbetsnoder kör Spark-körarna, en Spark-köre per arbetsnod.
Ett kluster med en nod har en drivrutinsnod och inga arbetsnoder, där Spark körs i lokalt läge för att ge stöd för åtkomst till tabeller som hanteras av Azure Databricks. Kluster med en nod stöder RStudio, notebook-filer och bibliotek och är användbara för R-projekt som inte är beroende av Spark för stordata eller parallell bearbetning. Se Beräkning med en nod eller flera noder.
För datastorlekar som R kämpar för att bearbeta (många gigabyte eller petabyte) bör du använda kluster med flera noder eller distribuerade kluster i stället. Distribuerade kluster har en drivrutinsnod och en eller flera arbetsnoder. Distribuerade kluster stöder inte bara RStudio, notebook-filer och bibliotek, utan även R-paket som SparkR och sparkly, som är unikt utformade för att använda distribuerade kluster via SparkContext
. Dessa paket tillhandahåller välbekanta SQL- och DataFrame-API:er, som gör det möjligt att tilldela och köra olika Spark-uppgifter och -kommandon parallellt mellan arbetsnoder. Mer information om sparklyr och SparkR finns i Jämföra SparkR och sparklyr.
Vissa SparkR- och sparklyr-funktioner som drar särskild nytta av att distribuera relaterat arbete mellan arbetsnoder omfattar följande:
- sparklyr::spark_apply: Kör godtycklig R-kod i stor skala i ett kluster. Detta är särskilt användbart för användning av funktioner som endast är tillgängliga i R- eller R-paket som inte är tillgängliga i Apache Spark eller andra Spark-paket.
- SparkR::d apply: Tillämpar den angivna funktionen på varje partition i en
SparkDataFrame
. - SparkR::d applyCollect: Tillämpar den angivna funktionen på varje partition i en
SparkDataFrame
och samlar in resultatet tillbaka till R som endata.frame
. - SparkR::gapply: Grupperar en
SparkDataFrame
med hjälp av de angivna kolumnerna och tillämpar den angivna R-funktionen på varje grupp. - SparkR::gapplyCollect: Grupperar en
SparkDataFrame
med hjälp av de angivna kolumnerna, tillämpar den angivna R-funktionen på varje grupp och samlar in resultatet tillbaka till R som endata.frame
. - SparkR::spark.lapply: Kör den angivna funktionen över en lista över element och distribuerar beräkningen med Spark.
Exempel finns i notebook-filen Distribuerad R: Användardefinierade funktioner i Spark.
Databricks Container Services
Med Databricks Container Services kan du ange en Docker-avbildning när du skapar ett kluster. Databricks tillhandahåller basavbildningen databricksruntime/rbase på Docker Hub som ett exempel för att starta ett Databricks Container Services-kluster med R-stöd. Se även Dockerfile som används för att generera den här basavbildningen.
Bibliotek
Azure Databricks-kluster använder Databricks Runtime, som tillhandahåller många populära bibliotek, inklusive Apache Spark, Delta Lake med mera. Du kan också installera ytterligare tredjeparts- eller anpassade R-paket i bibliotek som ska användas med notebook-filer och jobb.
Börja med standardbiblioteken i versionsanteckningarna för Databricks Runtime och kompatibilitet. Använd Databricks Runtime för Machine Learning för maskininlärningsarbetsbelastningar. Fullständiga listor över förinstallerade bibliotek finns i avsnittet "Installerade R-bibliotek" för databricks-målkörningen i Databricks Runtime versionsanteckningar och kompatibilitet.
Du kan anpassa din miljö med hjälp av R-bibliotek med notebook-omfång, vilket gör att du kan ändra din notebook- eller jobbmiljö med bibliotek från CRAN eller andra lagringsplatser. För att göra detta kan du använda den välbekanta funktionen install.packages från utils
. I följande exempel installeras Arrow R-paketet från cran-standardlagringsplatsen:
install.packages("arrow")
Om du behöver en äldre version än vad som ingår i Databricks Runtime kan du använda en notebook-fil för att köra install_version funktion från devtools
. I följande exempel installeras dplyr version 0.7.4 från CRAN:
require(devtools)
install_version(
package = "dplyr",
version = "0.7.4",
repos = "http://cran.r-project.org"
)
Paket som är installerade på det här sättet är tillgängliga i ett kluster. De är begränsade till den användare som installerar dem. På så sätt kan du installera flera versioner av samma paket på samma beräkning utan att skapa paketkonflikter.
Du kan installera andra bibliotek som klusterbibliotek efter behov, till exempel från CRAN. Det gör du genom att klicka på Bibliotek > Installera ny > CRAN i klustrets användargränssnitt och ange bibliotekets namn. Den här metoden är särskilt viktig när du vill anropa användardefinierade funktioner med SparkR eller sparklyr.
Mer information finns i Bibliotek.
Så här installerar du ett anpassat paket i ett bibliotek:
Skapa ditt anpassade paket från kommandoraden eller med hjälp av RStudio.
Kopiera den anpassade paketfilen från utvecklingsdatorn till din Azure Databricks-arbetsyta. Alternativ finns i Bibliotek.
Installera det anpassade paketet i ett bibliotek genom att köra
install.packages
.Till exempel från en notebook-fil på din arbetsyta:
install.packages( pkgs = "/path/to/tar/file/<custom-package>.tar.gz", type = "source", repos = NULL )
Eller:
%sh R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
När du har installerat ett anpassat paket i ett bibliotek lägger du till biblioteket i sökvägen och läser sedan in biblioteket med ett enda kommando.
Till exempel:
# 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>)
Om du vill installera ett anpassat paket som ett bibliotek på varje nod i ett kluster måste du använda Vad är init-skript?.
Visualiseringar
Azure Databricks R-notebook-filer stöder olika typer av visualiseringar med hjälp display
av funktionen.
Projekt
Du kan automatisera R-arbetsbelastningar som schemalagda eller utlösta notebook-jobb i Azure Databricks.
- Mer information om hur du skapar ett jobb via användargränssnittet finns i Konfigurera och redigera Databricks-jobb.
- Med JOBB-API :et kan du skapa, redigera och ta bort jobb.
- Databricks CLI tillhandahåller ett bekvämt kommandoradsgränssnitt för att anropa Jobb-API:et.
Maskininlärning
Databricks stöder en mängd olika arbetsbelastningar för maskininlärning (ML), inklusive traditionell ML för tabelldata, djupinlärning för visuellt innehåll och bearbetning av naturligt språk, rekommendationssystem, grafanalys med mera. Allmän information om maskininlärning i Azure Databricks finns i Databricks Runtime for Machine Learning.
För ML-algoritmer kan du använda förinstallerade bibliotek i Databricks Runtime for Machine Learning. Du kan också installera anpassade bibliotek.
För maskininlärningsåtgärder (MLOps) tillhandahåller Azure Databricks en hanterad tjänst för MLflow för öppen källkod-biblioteket. Med MLflow Tracking kan du registrera modellutveckling och spara modeller i återanvändbara format. Du kan använda MLflow Model Registry för att hantera och automatisera befordran av modeller mot produktion. Jobb och modellhantering tillåter värdmodeller som batch- och strömningsjobb som REST-slutpunkter. Mer information och exempel finns i ML-livscykelhanteringen med MLflow eller MLflow R API-dokumenten.
R-utvecklarverktyg
Utöver Azure Databricks-notebook-filer kan du även använda följande R-utvecklarverktyg:
Använd SparkR och RStudio Desktop med Databricks Connect.
Använd sparklyr och RStudio Desktop med Databricks Connect.
Anpassning av R-session
I Databricks Runtime 12.2 LTS och senare kan R-sessioner anpassas med hjälp av platsomfattande profilfiler (.Rprofile
). R-notebook-filer hämtar filen som R-kod under starten. Om du vill ändra filen letar du reda på värdet R_HOME
för och ändrar $R_HOME/etc/Rprofile.site
. Observera att Databricks har lagt till konfigurationen i filen för att säkerställa rätt funktioner för värdbaserad RStudio på Azure Databricks. Om du tar bort något av det kan RStudio inte fungera som förväntat.
I Databricks Runtime 11.3 LTS och nedan kan det här beteendet aktiveras genom att ange miljövariabeln DATABRICKS_ENABLE_RPROFILE=true
.