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.

Connessione 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 di RStudio Desktop, a meno che non si usi anche Databricks Connessione. 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 configurare RStudio Desktop nel computer di sviluppo locale:

  1. Scaricare e installare R 3.3.0 o versione successiva.
  2. Scaricare e installare RStudio Desktop.
  3. Avviare RStudio Desktop.

(Facoltativo) Per creare un progetto RStudio:

  1. Avviare RStudio Desktop.
  2. Fare clic su File > Nuovo progetto.
  3. Selezionare Nuova directory > Nuovo progetto.
  4. Scegliere una nuova directory per il progetto e quindi fare clic su Crea progetto.

Per creare uno script R:

  1. Con il progetto aperto, fare clic su File Nuovo file >> R Script.
  2. Fare clic su File > Salva con nome.
  3. 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:

  1. Ottenere i valori nome host server, porta e percorso HTTP per il cluster remoto o SQL Warehouse. Per un cluster, questi valori si trovano nella scheda JDBC/ODBC di Opzioni avanzate. Per un'istanza di SQL Warehouse, questi valori si trovano nella scheda dei dettagli di Connessione ion.

  2. Ottenere 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, vedere Gestire i token per un'entità servizio.

  3. Installare e configurare il driver ODBC di Databricks per Windows, macOS o Linux in base al sistema operativo del computer locale.

  4. Configurare un nome origine dati ODBC (DSN) nel cluster remoto o nel data warehouse SQL per Windows, macOS o Linux, in base al sistema operativo del computer locale.

  5. 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"
    )
    
  6. Tornare allo script R (Visualizza > Sposta stato attivo nell'origine), caricare i pacchetti e DBI installatiodbc:

    library(odbc)
    library(DBI)
    
  7. Chiamare la versione ODBC della funzione db Connessione nel DBI pacchetto, specificando il odbc driver nel odbc pacchetto e il DSN ODBC creato, ad esempio un DSN ODBC di Databricks.

    conn = dbConnect(
      drv = odbc(),
      dsn = "Databricks"
    )
    
  8. Chiamare un'operazione tramite il DSN ODBC, ad esempio un'istruzione tramite la funzione dbGetQuery nel DBI pacchetto, specificando il nome della variabile di connessione e l'istruzione SELECT stessa, ad esempio da una tabella denominata diamonds in uno schema (database) denominato default:SELECT

    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

Connessione con RStudio Server

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.

Nota

In alternativa a RStudio Server, è possibile usare RStudio Desktop per connettersi a un cluster Azure Databricks o a SQL Warehouse dal computer di sviluppo locale tramite una connessione ODBC e chiamare le funzioni del pacchetto ODBC per R. Non è possibile usare pacchetti come SparkR o sparklyr nello scenario RStudio Desktop, a meno che non si usi anche Databricks Connessione.

Per RStudio Server, è possibile usare l'edizione Open Source Edition o RStudio Workbench (in precedenza RStudio Server Pro) in Azure Databricks. Se si vuole usare RStudio Workbench/RStudio Server Pro, è necessario trasferire la licenza RStudio Workbench/RStudio Server Pro esistente ad Azure Databricks (vedere Introduzione: RStudio Workbench).

Databricks consiglia di usare Databricks Runtime per Machine Learning (Databricks Runtime ML) nei cluster Di Azure Databricks con RStudio Server, per ridurre i tempi di inizio del cluster. Databricks Runtime ML include una versione non modificata del pacchetto RStudio Server Open Source Edition per cui il codice sorgente è disponibile in GitHub. La tabella seguente elenca la versione di RStudio Server Open Source Edition attualmente preinstallata nelle versioni di Databricks Runtime ML.

Versione di Databricks Runtime per ML Versione di RStudio Server
Databricks Runtime 9.1 LTS ML e 10.4 LTS ML 1.4

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.

Architettura di RStudio in Databricks

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ò concedere questa autorizzazione. Vedere Autorizzazioni di calcolo.

  • Il cluster non deve avere il controllo di accesso alle tabelle, la terminazione automatica o il pass-through delle credenziali abilitato.

  • Il cluster non deve usare la modalità di accesso condiviso.

  • Il cluster non deve avere la configurazione spark.databricks.pyspark.enableProcessIsolation spark impostata su true.

  • Per usare l'edizione Pro, è necessario disporre di una licenza RStudio Server mobile Pro.

Nota

Sebbene il cluster possa usare una modalità di accesso che supporti Unity Catalog, non è possibile usare RStudio Server da tale cluster per accedere ai dati in Unity Catalog.

Introduzione: 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:

  1. Aprire la pagina dei dettagli del cluster.

  2. Avviare il cluster e quindi fare clic sulla scheda App :

    Scheda App cluster

  3. Nella scheda App fare clic sul pulsante Configura RStudio . In questo modo viene generata automaticamente una password una tantum. Fare clic sul collegamento mostra per visualizzarlo e copiare la password.

    RStudio una password monouso

  4. 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.

    Modulo di accesso di RStudio

  5. Dall'interfaccia utente di RStudio è possibile importare il SparkR pacchetto e configurare una SparkR sessione per avviare 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)
    

    Sessione RStudio Open Source Edition

  6. È anche possibile collegare il pacchetto sparklyr e configurare 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)
    

    Connessione sparklyr di RStudio Open Source Edition

Introduzione: RStudio Workbench

Questa sezione illustra come configurare e iniziare a usare RStudio Workbench (in precedenza RStudio Server Pro) in un cluster Azure Databricks. Vedere le domande frequenti sulla modifica del nome. A seconda della licenza, RStudio Workbench può includere RStudio Server Pro.

Configurare il server licenze RStudio

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 configurare un server licenze per RStudio Workbench.

Per configurare un server licenze:

  1. Avviare una piccola istanza nella rete del provider di servizi cloud; il daemon del server licenze è molto leggero.
  2. Scaricare e installare la versione corrispondente di RStudio License Server nell'istanza e avviare il servizio. Per istruzioni dettagliate, vedere RStudio Workbench Amministrazione Guide .For detailed instructions, see RStudio Workbench Amministrazione Guide.
  3. Assicurarsi che la porta del server licenze sia aperta alle istanze di Azure Databricks.

Installare RStudio Workbench

Per configurare RStudio Workbench in un cluster Azure Databricks, è necessario creare uno script init per installare il pacchetto binario RStudio Workbench e configurarlo per l'uso del server licenze per il lease 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 file di esempio .sh che è possibile archiviare come script init in un percorso, ad esempio nella home directory come file dell'area di lavoro, in un volume del catalogo Unity o in un archivio oggetti. Per altre informazioni, vedere Usare 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
  1. Sostituire <domain> con l'URL di Azure Databricks e <license-server-url> con l'URL del server licenze mobile.
  2. Archiviare questo .sh file come script init in un percorso, ad esempio nella home directory come file dell'area di lavoro, in un volume del catalogo Unity o in un archivio oggetti. Per altre informazioni, vedere Usare script init con ambito cluster.
  3. Prima di avviare un cluster, aggiungere questo .sh file come script init dal percorso associato. Per istruzioni, vedere Usare script init con ambito cluster.
  4. Avviare il cluster.

Usare RStudio Server Pro

  1. Aprire la pagina dei dettagli del cluster.

  2. Avviare il cluster e fare clic sulla scheda App :

    Scheda App cluster

  3. Nella scheda App fare clic sul pulsante Configura RStudio .

    RStudio una password monouso

  4. Non è necessaria la password monouso. Fare clic sul collegamento Apri interfaccia utente di RStudio e verrà aperta automaticamente una sessione RStudio Pro autenticata.

  5. Dall'interfaccia utente di RStudio è possibile collegare il SparkR pacchetto e configurare una SparkR sessione per avviare 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)
    

    Sessione di RStudio Pro

  6. È anche possibile collegare il pacchetto sparklyr e configurare 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)
    

    Connessione sparklyr di RStudio Pro

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. Per informazioni su come configurare RStudio Workbench in Azure Databricks, vedere Introduzione: RStudio Workbench .

Dove 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'è il file system di Databricks (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. Elenco /home/ubuntu/databricks/spark/R/lib/SparkR nel driver per verificare che il SparkR pacchetto 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) in cui è in esecuzione RStudio Server. 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.

Sessione RStudio

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.