RStudio in Azure Databricks
È possibile usare RStudio, un ambiente di sviluppo integrato (IDE) diffuso per R, per connettersi alle risorse di calcolo di Azure Databricks all'interno delle aree di lavoro di Azure Databricks. Usare RStudio Desktop per connettersi a un cluster Azure Databricks o a un'istanza di SQL Warehouse dal computer di sviluppo locale. È anche possibile usare il Web browser per accedere all'area di lavoro di Azure Databricks e quindi connettersi a un cluster Di Azure Databricks in cui È installato RStudio Server , all'interno di tale area di lavoro.
Connettersi con RStudio Desktop
Usare RStudio Desktop per connettersi a un cluster Azure Databricks remoto o a SQL Warehouse dal computer di sviluppo locale. Per connettersi in questo scenario, usare una connessione ODBC e chiamare le funzioni del pacchetto ODBC per R, descritte in questa sezione.
Nota
Non è possibile usare pacchetti come SparkR o sparklyr in questo scenario RStudio Desktop, a meno che non si usi anche Databricks Connect. In alternativa all'uso di RStudio Desktop, è possibile usare il Web browser per accedere all'area di lavoro di Azure Databricks e quindi connettersi a un cluster Azure Databricks con RStudio Server installato in tale area di lavoro.
Per set RStudio Desktop nel computer di sviluppo locale:
- Scaricare e installare R 3.3.0 o versione successiva.
- Scaricare e installare RStudio Desktop.
- Avviare RStudio Desktop.
(Facoltativo) Per creare un progetto RStudio:
- Avviare RStudio Desktop.
- Fare clic su File > Nuovo progetto.
- Select nuova directory > nuovo progetto.
- Scegliere una nuova directory per il progetto e quindi fare clic su Crea progetto.
Per creare uno script R:
- Con il progetto aperto, fare clic su File Nuovo file >> R Script.
- Fare clic su File > Salva con nome.
- Assegnare un nome al file e quindi fare clic su Salva.
Per connettersi al cluster Azure Databricks remoto o a SQL Warehouse tramite ODBC per R:
Get il nome host Server, portae percorsovalues HTTP per il cluster remoto o sql warehouse. Per un cluster, questi values si trovano nella scheda JDBC/ODBC di Opzioni avanzate. Per un SQL warehouse, questi values si trovano nella scheda Dettagli connessione.
Get un token di accesso personale di Azure Databricks .
Nota
Come procedura consigliata per la sicurezza, quando si esegue l'autenticazione con strumenti automatizzati, sistemi, script e app, Databricks consiglia di usare token di accesso personali appartenenti alle entità servizio, anziché agli utenti dell'area di lavoro. Per creare token per le entità servizio, consultare Gestire i token per un'entità servizio.
Installare e configurare il driver ODBC di Databricks per Windows, macOS o Linux in base al sistema operativo del computer locale.
Set Imposta un nome DSN (ODBC Data Source Name) per il cluster remoto o il SQL Warehouse su Windows, macOSo Linux, in base al sistema operativo del computer locale.
Dalla console di RStudio (Visualizza > spostare lo stato attivo nella console), installare i pacchetti odbc e DBI da CRAN:
require(devtools) install_version( package = "odbc", repos = "http://cran.us.r-project.org" ) install_version( package = "DBI", repos = "http://cran.us.r-project.org" )
Tornare allo script R (Visualizza > Sposta stato attivo nell'origine), caricare i pacchetti e
odbc
installatiDBI
:library(odbc) library(DBI)
Chiamare la versione ODBC della funzione dbConnect nel
DBI
pacchetto, specificando ilodbc
driver nelodbc
pacchetto e il DSN ODBC creato, ad esempio un DSN ODBC diDatabricks
.conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Chiamare un'operazione tramite il DSN ODBC, ad esempio un'istruzione
SELECT
tramite la funzione dbGetQueryDBI
nel pacchettoDBI
, specificando il nome della variabile di connessione e l'istruzioneSELECT
stessa, ad esempio da un table denominatodiamonds
in un schema (database) denominatodefault
:print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Lo script R completo è il seguente:
library(odbc)
library(DBI)
conn = dbConnect(
drv = odbc(),
dsn = "Databricks"
)
print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Per eseguire lo script, nella visualizzazione origine fare clic su Origine. I risultati dello script R precedente sono i seguenti:
_c0 carat cut color clarity depth table price x y z
1 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
Connettersi a un server RStudio ospitato in Databricks
Importante
RStudio Server ospitato in Databricks è deprecato ed è disponibile solo in Databricks Runtime versioni 15.4 e successive. Per altre informazioni, vedere Deprecazione di Hosted RStudio Server.
Usare il Web browser per accedere all'area di lavoro di Azure Databricks e quindi connettersi a un ambiente di calcolo di Azure Databricks in cui È installato RStudio Server in tale area di lavoro.
Per altre informazioni, vedere Connettersi a un server RStudio ospitato in Databricks
Architettura di integrazione di RStudio
Quando si usa RStudio Server in Azure Databricks, il daemon RStudio Server viene eseguito nel nodo driver di un cluster Azure Databricks. L'interfaccia utente Web di RStudio è proxy tramite l'app Web di Azure Databricks, il che significa che non è necessario apportare modifiche alla configurazione di rete del cluster. Questo diagramma illustra l'architettura del componente di integrazione di RStudio.
Avviso
Azure Databricks esegue il proxy del servizio Web RStudio dalla porta 8787 nel driver Spark del cluster. Questo proxy Web è destinato all'uso solo con RStudio. Se si avviano altri servizi Web sulla porta 8787, è possibile esporre gli utenti a potenziali exploit di sicurezza. Né Databricks né Microsoft sono responsabili di eventuali problemi derivanti dall'installazione di software non supportato in un cluster.
Requisiti
Il cluster deve essere un cluster all-purpose.
È necessario disporre dell'autorizzazione CAN ATTACH TO per il cluster. L'amministratore del cluster può grant questa autorizzazione. Vedere Autorizzazioni di calcolo.
Il cluster non deve avere table controllo di accesso, terminazione automatica, o il passaggio delle credenziali abilitato.
Il cluster non deve avere la configurazione di Spark
spark.databricks.pyspark.enableProcessIsolation
set pertrue
.Per usare l'edizione Pro, è necessario disporre di una licenza RStudio Server mobile Pro.
Nota
Anche se il cluster può usare una modalità di accesso che supporta Unity Catalog, non è possibile usare RStudio Server da tale cluster per accedere ai dati in Unity Catalog.
Get avviata: RStudio Server OS Edition
RStudio Server Open Source Edition è preinstallato nei cluster di Azure Databricks che usano Databricks Runtime per Machine Learning (Databricks Runtime ML).
Per aprire RStudio Server OS Edition in un cluster, eseguire le operazioni seguenti:
Aprire la pagina dei dettagli del cluster.
Avviare il cluster e quindi fare clic sulla scheda App :
Nella scheda app fare clic sul pulsante Set sopra RStudio. In questo modo viene generata automaticamente una password una tantum. Fare clic sul collegamento mostra per visualizzarlo e copiare la password.
Fare clic sul collegamento Apri RStudio per aprire l'interfaccia utente in una nuova scheda. Immettere il nome utente e la password nel modulo di accesso e accedere.
Dall'interfaccia utente di RStudio è possibile importare il pacchetto di
SparkR
e set una sessione diSparkR
per avviare i processi Spark nel cluster.library(SparkR) sparkR.session() # Query the first two rows of a table named "diamonds" in a # schema (database) named "default" and display the query result. df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2") showDF(df)
È possibile anche allegare il pacchetto sparklyr e impostare una connessione Spark set.
library(sparklyr) sc <- spark_connect(method = "databricks") # Query a table named "diamonds" and display the first two rows. df <- spark_read_table(sc = sc, name = "diamonds") print(x = df, n = 2)
Get avviata: RStudio Workbench
Questa sezione illustra come set iniziare a usare RStudio Workbench (in precedenza RStudio Server Pro) in un cluster Azure Databricks. A seconda della licenza, RStudio Workbench può includere RStudio Server Pro.
Set server licenze RStudio attivo
Per usare RStudio Workbench in Azure Databricks, è necessario convertire la licenza Pro in una licenza mobile. Per assistenza, contattare help@rstudio.com. Quando la licenza viene convertita, è necessario set un server di licenze per RStudio Workbench.
Per set un server licenze:
- Avviare una piccola istanza nella rete del provider di servizi cloud; il daemon del server licenze è molto leggero.
- Scaricare e installare la versione corrispondente di RStudio License Server nell'istanza e avviare il servizio. Per istruzioni dettagliate, vedere La Guida all'amministratore di RStudio Workbench.
- Assicurarsi che la porta del server licenze sia aperta alle istanze di Azure Databricks.
Installare RStudio Workbench
Per set RStudio Workbench in un cluster di Azure Databricks, è necessario creare uno script di inizializzazione per installare il pacchetto binario RStudio Workbench e configurarlo per l'uso del server licenze per il noleggio delle licenze.
Nota
Se si prevede di installare RStudio Workbench in una versione di Databricks Runtime che include già il pacchetto RStudio Server Open Source Edition, è necessario disinstallare prima di tutto il pacchetto affinché l'installazione abbia esito positivo.
Di seguito è riportato un esempio di file .sh
che puoi archiviare come script di inizializzazione in un percorso, ad esempio nella tua home directory come file di area di lavoro, in un volume Unity Catalog o in un'archiviazione a oggetti. Per altre informazioni, vedere Script init con ambito cluster. Lo script esegue anche configurazioni di autenticazione aggiuntive che semplificano l'integrazione con Azure Databricks.
Avviso
Gli script init con ambito cluster in DBFS sono end-of-life. L'archiviazione di script init in DBFS esiste in alcune aree di lavoro per supportare i carichi di lavoro legacy e non è consigliata. È necessario eseguire la migrazione di tutti gli script init archiviati in DBFS. Per istruzioni sulla migrazione, vedere Eseguire la migrazione di script init da DBFS.
#!/bin/bash
set -euxo pipefail
if [[ $DB_IS_DRIVER = "TRUE" ]]; then
sudo apt-get update
sudo dpkg --purge rstudio-server # in case open source version is installed.
sudo apt-get install -y gdebi-core alien
## Installing RStudio Workbench
cd /tmp
# You can find new releases at https://rstudio.com/products/rstudio/download-commercial/debian-ubuntu/.
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-workbench-2022.02.1-461.pro1-amd64.deb -O rstudio-workbench.deb
sudo gdebi -n rstudio-workbench.deb
## Configuring authentication
sudo echo 'auth-proxy=1' >> /etc/rstudio/rserver.conf
sudo echo 'auth-proxy-user-header-rewrite=^(.*)$ $1' >> /etc/rstudio/rserver.conf
sudo echo 'auth-proxy-sign-in-url=<domain>/login.html' >> /etc/rstudio/rserver.conf
sudo echo 'admin-enabled=1' >> /etc/rstudio/rserver.conf
sudo echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/rstudio/rsession-profile
# Enabling floating license
sudo echo 'server-license-type=remote' >> /etc/rstudio/rserver.conf
# Session configurations
sudo echo 'session-rprofile-on-resume-default=1' >> /etc/rstudio/rsession.conf
sudo echo 'allow-terminal-websockets=0' >> /etc/rstudio/rsession.conf
sudo rstudio-server license-manager license-server <license-server-url>
sudo rstudio-server restart || true
fi
- Sostituire
<domain>
con l'URL di Azure Databricks e<license-server-url>
con l'URL del server licenze mobile. - Archiviare questo file
.sh
come script init in un percorso, ad esempio nella home directory come file dell'area di lavoro, in un volume Catalog Unity o in un archivio oggetti. Per altre informazioni, vedere Script init con ambito cluster. - Prima di avviare un cluster, aggiungere questo
.sh
file come script init dal percorso associato. Per istruzioni, vedere Script init con ambito cluster. - Avviare il cluster.
Usare RStudio Server Pro
Aprire la pagina dei dettagli del cluster.
Avviare il cluster e fare clic sulla scheda App :
Nella scheda App, fare clic sul pulsante Set su RStudio.
Non è necessaria la password monouso. Fare clic sul collegamento Apri interfaccia utente di RStudio e verrà aperta automaticamente una sessione RStudio Pro autenticata.
Dall'interfaccia utente di RStudio è possibile collegare il pacchetto
SparkR
e set una sessione diSparkR
per avviare i processi Spark nel cluster.library(SparkR) sparkR.session() # Query the first two rows of a table named "diamonds" in a # schema (database) named "default" and display the query result. df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2") showDF(df)
È anche possibile collegare il pacchetto sparklyr
e una connessione Spark. library(sparklyr) sc <- spark_connect(method = "databricks") # Query a table named "diamonds" and display the first two rows. df <- spark_read_table(sc = sc, name = "diamonds") print(x = df, n = 2)
Domande frequenti su RStudio Server
Qual è la differenza tra RStudio Server Open Source Edition e RStudio Workbench?
RStudio Workbench supporta un'ampia gamma di funzionalità aziendali non disponibili nell'edizione Open Source. È possibile visualizzare il confronto delle funzionalità nel sito Web di RStudio.
Inoltre, RStudio Server Open Source Edition viene distribuito con GNU Affero General Public License (AGPL), mentre la versione Pro include una licenza commerciale per le organizzazioni che non sono in grado di usare il software AGPL.
RStudio Workbench include infine supporto professionale ed aziendale di RStudio, PBC, mentre RStudio Server Open Source Edition non include alcun supporto.
È possibile usare la licenza RStudio Workbench/RStudio Server Pro in Azure Databricks?
Sì, se si ha già una licenza Pro o Enterprise per RStudio Server, è possibile usare tale licenza in Azure Databricks. Vedere Get started: RStudio Workbench per informazioni su come set up RStudio Workbench in Azure Databricks.
Where viene eseguito RStudio Server? È necessario gestire eventuali servizi/server aggiuntivi?
Come si può vedere nel diagramma nell'architettura di integrazione di RStudio, il daemon RStudio Server viene eseguito nel nodo driver (master) del cluster Azure Databricks. Con RStudio Server Open Source Edition non è necessario eseguire server/servizi aggiuntivi. Tuttavia, per RStudio Workbench, è necessario gestire un'istanza separata che esegue RStudio License Server.
È possibile usare RStudio Server in un cluster standard?
Nota
Questo articolo descrive l'interfaccia utente dei cluster legacy. Per informazioni sull'interfaccia utente dei nuovi cluster (in anteprima), incluse le modifiche della terminologia per le modalità di accesso al cluster, vedere Informazioni di riferimento sulla configurazione del calcolo. Per un confronto tra i tipi di cluster nuovi e legacy, vedere Modifiche dell'interfaccia utente dei cluster e modalità di accesso al cluster.
Si, puoi.
È possibile usare RStudio Server in un cluster con terminazione automatica?
No, non è possibile usare RStudio quando la terminazione automatica è abilitata. La terminazione automatica può eliminare gli script utente e i dati non salvati all'interno di una sessione di RStudio. Per proteggere gli utenti da questo scenario imprevisto di perdita di dati, RStudio è disabilitato in tali cluster per impostazione predefinita.
Per i clienti che richiedono la pulizia delle risorse del cluster quando non vengono usate, Databricks consiglia di usare le API del cluster per pulire i cluster RStudio in base a una pianificazione.
Come rendere persistente il lavoro in RStudio?
È consigliabile rendere persistente il lavoro usando un sistema di controllo della versione di RStudio. RStudio offre un ottimo supporto per vari sistemi di controllo della versione e consente di archiviare e gestire i progetti. Se il codice non viene salvato in modo permanente tramite uno dei metodi seguenti, si rischia di perdere il lavoro se un amministratore dell'area di lavoro viene riavviato o terminato il cluster.
Un metodo consiste nel salvare i file (codice o dati) in Che cos'è DBFS?. Ad esempio, se si salva un file nei /dbfs/
file non verrà eliminato quando il cluster viene terminato o riavviato.
Un altro metodo consiste nel salvare il notebook R nel file system locale esportandolo come Rmarkdown
, quindi importando il file nell'istanza di RStudio. Il blog Sharing R Notebooks using RMarkdown (Condivisione di notebook R con RMarkdown ) descrive in modo più dettagliato i passaggi.
Ricerca per categorie avviare una SparkR
sessione?
SparkR
è contenuto in Databricks Runtime, ma è necessario caricarlo in RStudio. Eseguire il codice seguente all'interno di RStudio per inizializzare una SparkR
sessione.
library(SparkR)
sparkR.session()
Se si verifica un errore durante l'importazione del SparkR
pacchetto, eseguire .libPaths()
e verificare che /home/ubuntu/databricks/spark/R/lib
sia incluso nel risultato.
Se non è incluso, controllare il contenuto di /usr/lib/R/etc/Rprofile.site
.
List
/home/ubuntu/databricks/spark/R/lib/SparkR
nel driver per verificare che il pacchetto SparkR
sia installato.
Ricerca per categorie avviare una sparklyr
sessione?
Il sparklyr
pacchetto deve essere installato nel cluster. Usare uno dei metodi seguenti per installare il sparklyr
pacchetto:
- Come libreria di Azure Databricks
-
install.packages()
comando - Interfaccia utente di gestione dei pacchetti RStudio
library(sparklyr)
sc <- spark_connect(method = “databricks”)
In che modo RStudio si integra con i notebook R di Azure Databricks?
È possibile spostare il lavoro tra notebook e RStudio tramite il controllo della versione.
Cos'è la Directory di lavoro?
Quando si avvia un progetto in RStudio, si sceglie una directory di lavoro. Per impostazione predefinita, si tratta della home directory nel contenitore driver (master) where, dove RStudio Server è in esecuzione. Se si desidera, è possibile modificare questa directory.
È possibile avviare Shiny Apps da RStudio in esecuzione in Azure Databricks?
Sì, è possibile sviluppare e visualizzare applicazioni Shiny all'interno di RStudio Server in Databricks.
Non è possibile usare il terminale o git all'interno di RStudio in Azure Databricks. Come posso risolvere questo problema?
Assicurarsi di aver disabilitato i websocket. In RStudio Server Open Source Edition è possibile eseguire questa operazione dall'interfaccia utente.
In RStudio Server Pro è possibile aggiungere allow-terminal-websockets=0
a /etc/rstudio/rsession.conf
per disabilitare i websocket per tutti gli utenti.
Non viene visualizzata la scheda App nei dettagli del cluster.
Questa funzionalità non è disponibile per tutti i clienti. È necessario essere nel piano Premium.