Databricks Utilities med Databricks Connect för Python

Notera

Den här artikeln beskriver Databricks Connect för Databricks Runtime 13.3 LTS och senare.

I den här artikeln beskrivs hur du använder Databricks Utilities med Databricks Connect för Python. Med Databricks Connect kan du ansluta populära IDE:er, notebook-servrar och anpassade program till Azure Databricks-kluster. Se Databricks Connect.

Innan du börjar använda Databricks Connect måste du konfigurera Databricks Connect-klienten.

Scala-versionen av den här artikeln finns i Databricks Utilities with Databricks Connect for Scala.

Tillgängliga Databricks-verktyg

Du använder Databricks Connect för att få åtkomst till Databricks Utilities på följande sätt:

  • WorkspaceClient Använd klassens dbutils variabel för att komma åt Databricks Utilities. Klassen WorkspaceClient tillhör Databricks SDK för Python och ingår i Databricks Connect.
  • Använd dbutils.fs för att komma åt verktyget Databricks Utilities fs.
  • Använd dbutils.secrets för att komma åt verktyget Databricks Utilities hemligheter.
  • Använd dbutils.widgets för att skapa och läsa lokala widgets, så att kod skriven för Databricks Utilities widgets-verktyg körs lokalt. Dessa widgetar finns endast i din lokala session och kan inte hämta parametrar för fjärrnotebooks eller jobbuppgifter. Att läsa en widget som du inte skapat lokalt ger en KeyError, eller returnerar standardvärdet om du använder getArgument.
  • Använd dbutils.jobs.taskValues för att lokalt felsöka kod skriven för Databricks Utilities jobs. Uppgiftsvärden byts inte med fjärrjobbskörningar: set gör ingenting, och get returnerar värdet på sitt debugValue-argument, eller ger ett fel om du inte anger debugValue. För att ange eller hämta aktivitetsvärden för efterföljande uppgifter, kör din kod som en jobbuppgift.

Ingen funktionalitet i Databricks Utilities förutom de föregående verktygen finns tillgänglig genom dbutils.

Tips

Du kan också använda det inkluderade Databricks SDK för Python för att få åtkomst till alla tillgängliga Databricks REST-API:er, inte bara de föregående API:erna för Databricks Utilities. Se databricks-sdk på PyPI.

Initialisera arbetsyta-klienten

Om du vill initiera WorkspaceClient, måste du ange tillräckligt med information för att autentisera ett Databricks SDK med arbetsytan. Du kan till exempel:

  • Hårdkoda arbetsytans URL och din åtkomsttoken direkt i koden och initiera sedan WorkspaceClient på följande sätt. Även om det här alternativet stöds rekommenderar Inte Databricks det här alternativet eftersom det kan exponera känslig information, till exempel åtkomsttoken, om koden är incheckad i versionskontroll eller på annat sätt delas:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • Skapa eller ange en konfigurationsprofil som innehåller fälten host och tokenoch initiera sedan WorkspaceClient på följande sätt:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • Ange miljövariablerna DATABRICKS_HOST och DATABRICKS_TOKEN på samma sätt som du anger dem för Databricks Connect och initiera sedan WorkspaceClient på följande sätt:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

Databricks SDK för Python känner inte igen miljövariabeln SPARK_REMOTE för Databricks Connect.

Mer Azure Databricks autentiseringsalternativ för Databricks SDK för Python, samt hur du initierar AccountClient i Databricks SDK:er för att komma åt tillgängliga Databricks REST-API:er på kontonivå i stället för på arbetsytenivå, finns i databricks-sdk på PyPI.

Exempel: Skapa en fil i en volym

I följande exempel visas hur du använder Databricks SDK för Python för att automatisera Databricks Utilities. Det här exemplet skapar en fil med namnet zzz_hello.txt i en Unity Catalog-volymsökväg på arbetsytan, läser data från filen och tar sedan bort filen. Det här exemplet förutsätter att miljövariablerna DATABRICKS_HOST och DATABRICKS_TOKEN redan har angetts:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs

fs.put(
  file      = file_path,
  contents  = file_data,
  overwrite = True
)

print(fs.head(file_path))

fs.rm(file_path)

Se även Interaction med dbutils i dokumentationen för Databricks SDK för Python.