Verbinding maken naar Azure Databricks vanuit Python of R

In dit artikel leert u hoe u het ODBC-stuurprogramma van Databricks gebruikt om Azure Databricks te verbinden met python- of R-taal. Zodra u de verbinding tot stand hebt gebracht, hebt u toegang tot de gegevens in Azure Databricks vanaf de Python- of R-clients. U kunt de clients ook gebruiken om de gegevens verder te analyseren.

Vereisten

  • U moet beschikken over een Azure Databricks-werkruimte, een Spark-cluster en voorbeeldgegevens die zijn gekoppeld aan uw cluster. Als u deze vereisten nog niet hebt, voltooit u de quickstart bij Aan de slag.

  • Download het Databricks ODBC-stuurprogramma van de downloadpagina van het Databricks-stuurprogramma. Installeer de 64-bits versie van het stuurprogramma.

  • Stel een persoonlijk toegangstoken in Databricks in. Zie Tokenbeheer voor instructies.

Een DSN instellen

Een gegevensbronnaam (DSN) bevat de informatie over een specifieke gegevensbron. Een ODBC-stuurprogramma heeft deze DSN nodig om verbinding te maken met een gegevensbron. In deze sectie stelt u een DSN in die kan worden gebruikt met het Databricks ODBC-stuurprogramma om verbinding te maken met Azure Databricks vanaf clients zoals Python of R.

  1. Navigeer vanuit de Azure Databricks-werkruimte naar het Databricks-cluster.

    Open Databricks cluster

  2. Klik op het tabblad Configuratie op het tabblad JDBC/ODBC en kopieer de waarden voor serverhostnaam en HTTP-pad. U hebt deze waarden nodig om de stappen in dit artikel uit te voeren.

    Get Databricks configuration

  3. Start op uw computer de 64-bits ODBC-gegevensbronnentoepassing .

    Launch ODBC Data Sources app

  4. Klik op het tabblad Gebruikers-DSN op Toevoegen. Selecteer in het dialoogvenster Nieuwe gegevensbron maken het Simba Spark ODBC-stuurprogramma en klik vervolgens op Voltooien.

    Add ODBC data source

  5. Geef in het dialoogvenster Simba Spark ODBC-stuurprogramma de volgende waarden op:

    Configure DSN

    De volgende tabel bevat informatie over de waarden die u in het dialoogvenster kunt opgeven.

    Veld Waarde
    Naam van gegevensbron Geef een naam op voor de gegevensbron.
    Host(s) Geef de waarde op die u hebt gekopieerd uit de Databricks-werkruimte voor serverhostnaam.
    Poort Voer 443 in.
    Verificatiemechanisme> Selecteer Gebruikersnaam en wachtwoord.
    Gebruikersnaam Voer het token in.
    Wachtwoord Voer de tokenwaarde in die u hebt gekopieerd uit de Databricks-werkruimte.

    Voer de volgende extra stappen uit in het dialoogvenster DSN-installatie.

    • Klik op HTTP-opties. Plak in het dialoogvenster dat wordt geopend de waarde voor het HTTP-pad dat u hebt gekopieerd uit de Databricks-werkruimte. Klik op OK.
    • Klik op SSL-opties. Schakel in het dialoogvenster dat wordt geopend het selectievakje SSL inschakelen in. Klik op OK.
    • Klik op Testen om de verbinding met Azure Databricks te testen. Klik op OK om de configuratie op te slaan.
    • Klik in het dialoogvenster ODBC-gegevensbron Beheer istrator op OK.

U hebt nu uw DSN ingesteld. In de volgende secties gebruikt u deze DSN om vanuit Python of R verbinding te maken met Azure Databricks.

Verbinding maken van R

Notitie

In deze sectie vindt u informatie over het integreren van een R Studio-client die wordt uitgevoerd op uw bureaublad met Azure Databricks. Zie R Studio in Azure Databricks voor instructies over het gebruik van R Studio in het Azure Databricks-cluster zelf.

In deze sectie gebruikt u een R-taal-IDE om te verwijzen naar gegevens die beschikbaar zijn in Azure Databricks. Voordat u begint, moet u het volgende op de computer hebben geïnstalleerd.

  • Een IDE voor R-taal. In dit artikel wordt RStudio voor Desktop gebruikt. U kunt het installeren via R Studio downloaden.
  • Als u RStudio voor Desktop als uw IDE gebruikt, installeert u ook Microsoft R Client vanuit https://aka.ms/rclient/.

Open RStudio en voer de volgende stappen uit:

  • Verwijs naar het RODBC pakket. Hiermee kunt u verbinding maken met Azure Databricks met behulp van de DSN die u eerder hebt gemaakt.
  • Maak een verbinding met behulp van de DSN.
  • Voer een SQL-query uit op de gegevens in Azure Databricks. In het volgende codefragment is radio_sample_data een tabel die al bestaat in Azure Databricks.
  • Voer enkele bewerkingen uit op de query om de uitvoer te controleren.

Met het volgende codefragment worden deze taken uitgevoerd:

# 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)

Verbinding maken van Python

In deze sectie gebruikt u een Python IDE (zoals IDLE) om te verwijzen naar gegevens die beschikbaar zijn in Azure Databricks. Voordat u begint, moet u de volgende vereisten voltooien:

  • Installeer Python hier. Als u Python vanaf deze koppeling installeert, wordt ook IDLE geïnstalleerd.

  • Installeer het pyodbc pakket vanaf een opdrachtprompt op de computer. Voer de volgende opdracht uit:

    pip install pyodbc
    

Open IDLE en voer de volgende stappen uit:

  • Importeer het pyodbc pakket. Hiermee kunt u verbinding maken met Azure Databricks met behulp van de DSN die u eerder hebt gemaakt.
  • Maak een verbinding met behulp van de DSN die u eerder hebt gemaakt.
  • Voer een SQL-query uit met behulp van de verbinding die u hebt gemaakt. In het volgende codefragment is radio_sample_data een tabel die al bestaat in Azure Databricks.
  • Voer bewerkingen uit op de query om de uitvoer te controleren.

Met het volgende codefragment worden deze taken uitgevoerd:

# 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)

Volgende stappen