Udostępnij za pośrednictwem


Narzędzia usługi Databricks z usługą Databricks Connect dla języka Python

Notatka

W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.

W tym artykule opisano sposób używania programu Databricks Utilities z usługą Databricks Connect dla języka Python. Usługa Databricks Connect umożliwia łączenie popularnych środowisk programistycznych (IDE), serwerów notebooków i aplikacji niestandardowych z klastrami Azure Databricks. Zobacz Co to jest usługa Databricks Connect?. Aby zapoznać się z wersją artykułu w języku Scala, przeczytaj Databricks Utilities with Databricks Connect for Scala.

Notatka

Przed rozpoczęciem korzystania z usługi Databricks Connect należy set klienta usługi Databricks Connect.

Użyjesz usługi Databricks Connect, aby uzyskać dostęp do narzędzi usługi Databricks w następujący sposób:

  • Użyj zmiennej dbutils z klasy WorkspaceClient, aby uzyskać dostęp do narzędzi Databricks Utilities. Klasa WorkspaceClient należy do zestawu SDK usługi Databricks dla języka Python i jest uwzględniona w usłudze Databricks Connect.
  • Użyj dbutils.fs, aby uzyskać dostęp do narzędzia Databricks Utilities fs.
  • Użyj dbutils.secrets, aby uzyskać dostęp do narzędzia Databricks Utilities Secrets.
  • Żadne funkcje narzędzi Databricks, poza wymienionymi wcześniej, nie są dostępne za pośrednictwem dbutils.

Napiwek

Możesz również użyć dołączonego zestawu SDK usługi Databricks dla języka Python, aby uzyskać dostęp do dowolnego dostępnego interfejsu API REST usługi Databricks, a nie tylko poprzednich interfejsów API narzędzi usługi Databricks. Zobacz databricks-sdk na stronie PyPI.

Aby zainicjować WorkspaceClient, należy podać wystarczającą ilość danych, aby uwierzytelnić pakiet SDK Databricks z obszarem roboczym. Możesz na przykład:

  • Zakoduj trwale adres URL obszaru roboczego i token dostępu bezpośrednio w kodzie, a następnie zainicjuj WorkspaceClient w następujący sposób. Mimo że ta opcja jest obsługiwana, usługa Databricks nie zaleca tej opcji, ponieważ może uwidaczniać poufne informacje, takie jak tokeny dostępu, jeśli kod jest zaewidencjonowany w kontroli wersji lub w inny sposób udostępniony:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • Utwórz lub określ profil konfiguracji , który zawiera pola host i token, a następnie zainicjuj WorkspaceClient w następujący sposób:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • Set zmienne środowiskowe DATABRICKS_HOST i DATABRICKS_TOKEN w taki sam sposób, jak set je dla usługi Databricks Connect, a następnie zainicjuj WorkspaceClient w następujący sposób:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

Zestaw SDK usługi Databricks dla języka Python nie rozpoznaje zmiennej środowiskowej SPARK_REMOTE dla usługi Databricks Connect.

Aby uzyskać dodatkowe opcje uwierzytelniania usługi Azure Databricks dla zestawu SDK usługi Databricks dla języka Python, a także jak zainicjować AccountClient w zestawach SDK usługi Databricks w celu uzyskania dostępu do dostępnych interfejsów API REST usługi Databricks na poziomie konta zamiast na poziomie obszaru roboczego, zobacz databricks-sdk na platformie PyPI.

W poniższym przykładzie pokazano, jak używać zestawu SDK usługi Databricks dla języka Python do automatyzowania narzędzi usługi Databricks. W tym przykładzie tworzony jest plik o nazwie zzz_hello.txt w ścieżce woluminu Unity Catalog w obszarze roboczym, dane są odczytywane z pliku, a następnie plik jest usuwany. W tym przykładzie przyjęto założenie, że zmienne środowiskowe DATABRICKS_HOST i DATABRICKS_TOKEN zostały już set:

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)

Zobacz również Interakcja z dbutils w dokumentacji SDK Databricks dla Pythona.