Connessione ad Azure Databricks da Python o R

Questo articolo illustra come usare il driver ODBC di Databricks per connettere Azure Databricks con python o linguaggio R. Dopo aver stabilito la connessione, è possibile accedere ai dati in Azure Databricks dai client Python o R. È anche possibile usare i client per analizzare ulteriormente i dati.

Prerequisiti

  • È necessario disporre di un'area di lavoro di Azure Databricks, un cluster Spark e dati di esempio associati al cluster. Se questi prerequisiti non sono già disponibili, completare la guida introduttiva in Introduzione.

  • Scaricare il driver ODBC di Databricks dalla pagina di download dei driver Databricks. Installare la versione a 64 bit del driver.

  • Configurare un token di accesso personale in Databricks. Per istruzioni, vedere Token management (Gestione di token).

Configurare un DSN

Un nome dell'origine dati (DSN) contiene le informazioni relative a una specifica origine dati. Un driver ODBC ha bisogno del DSN per connettersi a un'origine dati. In questa sezione viene configurato un DSN che può essere usato con il driver ODBC di Databricks per connettersi ad Azure Databricks da client come Python o R.

  1. Dall'area di lavoro di Azure Databricks passare al cluster Databricks.

    Open Databricks cluster

  2. Nella scheda Configurazione fare clic sulla scheda JDBC/ODBC e copiare i valori per Server Hostname (Nome host server) e HTTP Path (Percorso HTTP). Questi valori sono necessari per seguire la procedura descritta in questo articolo.

    Get Databricks configuration

  3. Nel computer avviare l'applicazione Origini dati ODBC a 64 bit.

    Launch ODBC Data Sources app

  4. Nella scheda DSN utente fare clic su Aggiungi. Nella finestra di dialogo Crea nuova origine dati selezionare Simba Spark ODBC Driver (Driver ODBC Spark di Simba) e fare clic su Fine.

    Add ODBC data source

  5. Nella finestra di dialogo di configurazione del driver ODBC Spark di Simba:

    Configure DSN

    La tabella seguente fornisce informazioni sui valori da inserire nella finestra di dialogo.

    Campo Valore
    Nome origine dati Immettere un nome per l'origine dati.
    Host Immettere il valore copiato dall'area di lavoro di Databricks per il nome host del server.
    Porta Immettere 443.
    Autenticazione>Meccanismo Selezionare Nome utente e password.
    Nome utente Immettere token.
    Password Immettere il valore del token copiato dall'area di lavoro di Databricks.

    Eseguire i passaggi aggiuntivi seguenti nella finestra di dialogo di configurazione del DSN.

    • Fare clic su HTTP Options (Opzioni HTTP). Nella finestra di dialogo visualizzata incollare il valore del percorso HTTP copiato dall'area di lavoro di Databricks. Fare clic su OK.
    • Fare clic su SSL Options (Opzioni SSL). Nella finestra di dialogo visualizzata selezionare la casella di controllo Abilita SSL. Fare clic su OK.
    • Fare clic su Test per testare la connessione ad Azure Databricks. Fare clic su OK per salvare la configurazione.
    • Nella finestra di dialogo Amministrazione origine dati ODBC fare clic su OK.

Il DSN è stato configurato. Nelle sezioni successive si usa questo DSN per connettersi ad Azure Databricks da Python o R.

Connettersi da R

Nota

Questa sezione fornisce informazioni su come integrare un client di R Studio in esecuzione sul desktop con Azure Databricks. Per istruzioni su come usare R Studio nello stesso cluster Azure Databricks, consultare R Studio in Azure Databricks.

In questa sezione si usa un IDE per il linguaggio R per fare riferimento a dati disponibili in Azure Databricks. Prima di iniziare, è necessario installare nel computer in uso gli elementi seguenti.

  • Un IDE per il linguaggio R. In questo articolo si usa RStudio per il desktop. È possibile installarlo dalla pagina di download di R Studio.
  • Se si usa l'IDE RStudio per il desktop, installare anche Microsoft R Client da https://aka.ms/rclient/.

Avviare RStudio e seguire questa procedura:

  • Fare riferimento al pacchetto RODBC. Questo consente di stabilire la connessione ad Azure Databricks usando il DSN creato in precedenza.
  • Stabilire una connessione usando il DSN.
  • Eseguire una query SQL sui dati in Azure Databricks. Nel frammento di codice seguente, radio_sample_data è una tabella già esistente in Azure Databricks.
  • Eseguire alcune operazioni sulla query per verificare l'output.

Il frammento di codice seguente esegue queste attività:

# reference the 'RODBC' package
require(RODBC)

# establish a connection using the DSN you created earlier
conn <- odbcConnect("<ENTER DSN NAME HERE>")

# run a SQL query using the connection you created
res <- sqlQuery(conn, "SELECT * FROM radio_sample_data")

# print out the column names in the query output
names(res)

# print out the number of rows in the query output
nrow (res)

Connettersi da Python

In questa sezione si usa un IDE Python (ad esempio IDLE) per fare riferimento a dati disponibili in Azure Databricks. Prima di iniziare, completare i prerequisiti seguenti:

  • Installare Python da qui. Installando Python da questo collegamento viene installato anche IDLE.

  • Da un prompt dei comandi nel computer installare il pacchetto pyodbc. Esegui questo comando:

    pip install pyodbc
    

Aprire IDLE e seguire questa procedura:

  • Importare il pacchetto pyodbc. Questo consente di stabilire la connessione ad Azure Databricks usando il DSN creato in precedenza.
  • Stabilire una connessione usando il DSN creato in precedenza.
  • Eseguire una query SQL usando la connessione creata. Nel frammento di codice seguente, radio_sample_data è una tabella già esistente in Azure Databricks.
  • Eseguire operazioni sulla query per verificare l'output.

Il frammento di codice seguente esegue queste attività:

# import the `pyodbc` package:
import pyodbc

# establish a connection using the DSN you created earlier
conn = pyodbc.connect("DSN=<ENTER DSN NAME HERE>", autocommit=True)

# run a SQL query using the connection you created
cursor = conn.cursor()
cursor.execute("SELECT * FROM radio_sample_data")

# print the rows retrieved by the query.
for row in cursor.fetchall():
    print(row)

Passaggi successivi

  • Per informazioni sulle origini da cui è possibile importare dati in Azure Databricks, vedere Data sources for Azure Databricks (Origini dati per Azure Databricks)