Instalowanie programu Databricks Connect dla języka Python
Uwaga
W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.
W tym artykule opisano sposób instalowania programu Databricks Connect dla języka Python. Zobacz Co to jest usługa Databricks Connect?. Aby zapoznać się z wersją tego artykułu, zobacz Install Databricks Connect for Scala (Instalowanie programu Databricks Connect dla języka Scala).
Wymagania
Aby zainstalować program Databricks Connect dla języka Python, należy spełnić następujące wymagania:
Jeśli łączysz się z bezserwerowym obliczeniami, obszar roboczy musi spełniać wymagania dotyczące przetwarzania bezserwerowego.
Uwaga
Przetwarzanie bezserwerowe jest obsługiwane w programie Databricks Connect w wersji 15.1 lub nowszej. Ponadto wersje programu Databricks Connect w wersji databricks Runtime lub niższej niż wersja środowiska Databricks Runtime w wersji bezserwerowej są w pełni zgodne. Zobacz Informacje o wersji. Aby sprawdzić, czy wersja programu Databricks Connect jest zgodna z obliczeniami bezserwerowymi, zobacz Weryfikowanie połączenia z usługą Databricks.
Jeśli łączysz się z klastrem, klaster docelowy musi spełniać wymagania dotyczące konfiguracji klastra, które obejmują wymagania dotyczące wersji środowiska Databricks Runtime.
Na komputerze deweloperskim musi być zainstalowany język Python 3, a wersja pomocnicza języka Python zainstalowana na komputerze deweloperskim musi spełniać wymagania dotyczące wersji w poniższej tabeli.
Typ środowiska obliczeniowego Wersja programu Databricks Connect Zgodna wersja języka Python Praca bezserwerowa 15.1 i nowsze 3.11 Klaster 15.1 i nowsze 3.11 Klaster 13.3 LTS do 14.3 LTS 3,10 Jeśli chcesz używać funkcji zdefiniowanych przez użytkownika PySpark, zainstalowana wersja pomocnicza języka Python na maszynie deweloperskiej musi być zgodna z wersją pomocniczą języka Python dołączoną do środowiska Databricks Runtime zainstalowanego w klastrze lub bezserwerowym środowisku obliczeniowym. Aby znaleźć pomocniczą wersję klastra w języku Python, zapoznaj się z sekcją Środowisko systemowe informacji o wersji środowiska Databricks Runtime dla klastra lub bezserwerowego środowiska obliczeniowego. Zobacz Informacje o wersji środowiska Databricks Runtime i informacje o zgodności oraz informacje o wersji obliczeniowej bezserwerowej.
Aktywowanie środowiska wirtualnego języka Python
Usługa Databricks zdecydowanie zaleca aktywowanie środowiska wirtualnego języka Python dla każdej wersji języka Python używanej z usługą Databricks Connect. Środowiska wirtualne języka Python pomagają upewnić się, że używasz poprawnych wersji języka Python i usługi Databricks Connect razem. Aby uzyskać więcej informacji na temat tych narzędzi i sposobu ich aktywowania, zobacz venv lub Poezja.
Instalowanie klienta usługi Databricks Connect
W tej sekcji opisano sposób instalowania klienta programu Databricks Connect za pomocą oprogramowania venv lub poezji.
Uwaga
Jeśli masz już zainstalowane rozszerzenie Databricks dla programu Visual Studio Code, nie musisz wykonywać tych instrukcji konfiguracji, ponieważ rozszerzenie usługi Databricks dla programu Visual Studio Code ma już wbudowaną obsługę programu Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego. Przejdź do sekcji Debugowanie kodu przy użyciu usługi Databricks Connect dla rozszerzenia usługi Databricks dla programu Visual Studio Code.
Instalowanie klienta usługi Databricks Connect za pomocą programu venv
Po aktywowaniu środowiska wirtualnego odinstaluj narzędzie PySpark, jeśli jest już zainstalowane, uruchamiając
uninstall
polecenie . Jest to wymagane, ponieważdatabricks-connect
pakiet powoduje konflikt z narzędziem PySpark. Aby uzyskać szczegółowe informacje, zobacz Konflikt instalacji PySpark. Aby sprawdzić, czy program PySpark jest już zainstalowany, uruchomshow
polecenie .# Is PySpark already installed? pip3 show pyspark # Uninstall PySpark pip3 uninstall pyspark
Po aktywowaniu środowiska wirtualnego zainstaluj klienta programu Databricks Connect, uruchamiając
install
polecenie .--upgrade
Użyj opcji , aby uaktualnić dowolną istniejącą instalację klienta do określonej wersji.pip3 install --upgrade "databricks-connect==15.4.*" # Or X.Y.* to match your cluster version.
Uwaga
Usługa Databricks zaleca dołączenie notacji "kropka-gwiazdka", aby określić
databricks-connect==X.Y.*
zamiastdatabricks-connect=X.Y
, aby upewnić się, że zainstalowano najnowszy pakiet. Chociaż nie jest to wymagane, pomaga upewnić się, że możesz używać najnowszych obsługiwanych funkcji dla tego klastra.
Przejdź do sekcji Konfigurowanie właściwości połączenia.
Instalowanie klienta usługi Databricks Connect za pomocą poezji
Po aktywowaniu środowiska wirtualnego odinstaluj narzędzie PySpark, jeśli jest już zainstalowane, uruchamiając
remove
polecenie . Jest to wymagane, ponieważdatabricks-connect
pakiet powoduje konflikt z narzędziem PySpark. Aby uzyskać szczegółowe informacje, zobacz Konflikt instalacji PySpark. Aby sprawdzić, czy program PySpark jest już zainstalowany, uruchomshow
polecenie .# Is PySpark already installed? poetry show pyspark # Uninstall PySpark poetry remove pyspark
Po aktywowaniu środowiska wirtualnego zainstaluj klienta programu Databricks Connect, uruchamiając
add
polecenie .poetry add databricks-connect@~15.4 # Or X.Y to match your cluster version.
Uwaga
Usługa Databricks zaleca użycie notacji "at-tilde", aby określić
databricks-connect@~15.4
zamiastdatabricks-connect==15.4
, aby upewnić się, że najnowszy pakiet jest zainstalowany. Chociaż nie jest to wymagane, pomaga upewnić się, że możesz używać najnowszych obsługiwanych funkcji dla tego klastra.
Konfigurowanie właściwości połączenia
W tej sekcji skonfigurujesz właściwości w celu nawiązania połączenia między usługą Databricks Connect i klastrem usługi Azure Databricks lub bezserwerowym środowiskiem obliczeniowym, który obejmuje następujące elementy:
- Nazwa wystąpienia obszaru roboczego usługi Azure Databricks. Jest to wartość Nazwa hosta serwera dla obliczeń. Zobacz Pobieranie szczegółów połączenia dla zasobu obliczeniowego usługi Azure Databricks.
- Wszelkie inne właściwości, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Uwaga
Uwierzytelnianie typu użytkownik-komputer (U2M) protokołu OAuth jest obsługiwane w zestawie SDK usługi Databricks dla języka Python w wersji 0.19.0 lub nowszej. Może być konieczne zaktualizowanie zainstalowanej wersji zestawu SDK usługi Databricks dla języka Python do wersji 0.19.0 lub nowszej w celu użycia uwierzytelniania OAuth U2M. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Python.
W przypadku uwierzytelniania OAuth U2M należy użyć interfejsu wiersza polecenia usługi Databricks do uwierzytelnienia przed uruchomieniem kodu w języku Python. Zobacz Samouczek.
Uwierzytelnianie OAuth maszynowo-maszynowe (M2M) uwierzytelnianie maszynowo-maszynowe OAuth (M2M) jest obsługiwane w zestawie SDK usługi Databricks dla języka Python w wersji 0.18.0 lub nowszej. Aby użyć uwierzytelniania OAuth M2M, może być konieczne zaktualizowanie zainstalowanej wersji zestawu SDK usługi Databricks dla języka Python do wersji 0.18.0 lub nowszej. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Python.
Zestaw SDK usługi Databricks dla języka Python nie zaimplementował jeszcze uwierzytelniania tożsamości zarządzanych platformy Azure.
Konfigurowanie połączenia z klastrem
Aby skonfigurować połączenie z klastrem, potrzebny będzie identyfikator klastra. Identyfikator klastra można uzyskać z adresu URL. Zobacz Adres URL i identyfikator klastra.
Połączenie z klastrem można skonfigurować w jeden z następujących sposobów. Usługa Databricks Connect wyszukuje właściwości konfiguracji w następującej kolejności i używa pierwszej znalezionej konfiguracji. Aby uzyskać zaawansowane informacje o konfiguracji, zobacz Advanced usage of Databricks Connect for Python (Zaawansowane użycie programu Databricks Connect dla języka Python).
- Metoda remote() klasy DatabricksSession.
- Profil konfiguracji usługi Databricks
- Zmienna środowiskowa DATABRICKS_CONFIG_PROFILE
- Zmienna środowiskowa dla każdej właściwości konfiguracji
- Profil konfiguracji usługi Databricks o nazwie DEFAULT
DatabricksSession
Metoda klasy remote()
W przypadku tej opcji, która ma zastosowanie tylko do uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks, określ nazwę wystąpienia obszaru roboczego, osobisty token dostępu usługi Azure Databricks oraz identyfikator klastra.
Klasę DatabricksSession
można zainicjować na kilka sposobów w następujący sposób:
host
Ustaw pola ,token
icluster_id
w plikuDatabricksSession.builder.remote()
.- Użyj klasy zestawu SDK
Config
usługi Databricks. - Określ profil konfiguracji usługi Databricks wraz z polem
cluster_id
. - Ustaw parametry połączenia Spark Connect w pliku
DatabricksSession.builder.remote()
.
Zamiast określać te właściwości połączenia w kodzie, usługa Databricks zaleca konfigurowanie właściwości za pomocą zmiennych środowiskowych lub plików konfiguracji, zgodnie z opisem w tej sekcji. W poniższych przykładach kodu założono, że udostępniasz implementację proponowanych retrieve_*
funkcji, aby uzyskać niezbędne właściwości od użytkownika lub z innego magazynu konfiguracji, takiego jak Azure KeyVault.
Kod dla każdego z tych podejść jest następujący:
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Profil konfiguracji usługi Databricks
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Następnie ustaw nazwę tego profilu konfiguracji za pomocą Config
klasy .
Możesz określić cluster_id
na kilka sposobów w następujący sposób:
- Uwzględnij
cluster_id
pole w profilu konfiguracji, a następnie po prostu określ nazwę profilu konfiguracji. - Określ nazwę profilu konfiguracji wraz z polem
cluster_id
.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Kod dla każdego z tych podejść jest następujący:
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Zmienna DATABRICKS_CONFIG_PROFILE
środowiskowa
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Ustaw zmienną DATABRICKS_CONFIG_PROFILE
środowiskową na nazwę tego profilu konfiguracji. Następnie zainicjuj klasę DatabricksSession
w następujący sposób:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Zmienna środowiskowa dla każdej właściwości konfiguracji
Dla tej opcji ustaw zmienną DATABRICKS_CLUSTER_ID
środowiskową i wszelkie inne zmienne środowiskowe, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Wymagane zmienne środowiskowe dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
DATABRICKS_HOST
iDATABRICKS_TOKEN
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
iDATABRICKS_CLIENT_SECRET
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
DATABRICKS_HOST
. - W przypadku uwierzytelniania
DATABRICKS_HOST
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
i prawdopodobnieDATABRICKS_AZURE_RESOURCE_ID
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
DATABRICKS_HOST
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
i ewentualnieDATABRICKS_AZURE_RESOURCE_ID
.
Następnie zainicjuj klasę DatabricksSession
w następujący sposób:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Profil konfiguracji usługi Databricks o nazwie DEFAULT
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Nadaj nazwę temu profilowi DEFAULT
konfiguracji .
Następnie zainicjuj klasę DatabricksSession
w następujący sposób:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Konfigurowanie połączenia z obliczeniami bezserwerowym
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Usługa Databricks Connect obsługuje nawiązywanie połączenia z obliczeniami bezserwerowymi. Aby korzystać z tej funkcji, należy spełnić wymagania dotyczące nawiązywania połączenia z bezserwerową. Zobacz Wymagania.
Ważne
Ta funkcja ma następujące ograniczenia:
- Wszystkie ograniczenia programu Databricks Connect dla języka Python
- Wszystkie ograniczenia obliczeniowe bezserwerowe
- Tylko zależności języka Python, które są uwzględnione w ramach bezserwerowego środowiska obliczeniowego, mogą być używane dla funkcji zdefiniowanych przez użytkownika. Zobacz Środowisko systemowe. Nie można zainstalować dodatkowych zależności.
- Funkcje zdefiniowane przez użytkownika z modułami niestandardowymi nie są obsługiwane.
Połączenie z obliczeniami bezserwerowym można skonfigurować na jeden z następujących sposobów:
Ustaw lokalną zmienną środowiskową
DATABRICKS_SERVERLESS_COMPUTE_ID
naauto
. Jeśli ta zmienna środowiskowa jest ustawiona, program Databricks Connect ignoruje wartośćcluster_id
.W lokalnym profilu konfiguracji usługi Databricks ustaw pozycję
serverless_compute_id = auto
, a następnie odwołaj się do tego profilu z kodu języka Python usługi Databricks Connect.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Możesz też zaktualizować kod języka Python usługi Databricks Connect w następujący sposób:
from databricks.connect import DatabricksSession as SparkSession spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession spark DatabricksSession.builder.remote(serverless=True).getOrCreate()
Uwaga
Limit czasu sesji obliczeniowej bezserwerowej po upływie 10 minut braku aktywności. Następnie należy utworzyć nową sesję platformy Spark w celu nawiązania połączenia z bezserwerowym obliczeniami. Można to zrobić za pomocą polecenia spark = DatabricksSession.builder.serverless(True).getOrCreate()
.
Weryfikowanie połączenia z usługą Databricks
Aby zweryfikować środowisko, poświadczenia domyślne i połączenie z obliczeniami są poprawnie skonfigurowane dla usługi Databricks Connect, uruchom databricks-connect test
polecenie, które kończy się niepowodzeniem z kodem zakończenia bez zera i odpowiednim komunikatem o błędzie, gdy wykryje niezgodność w instalacji.
databricks-connect test
Możesz również zweryfikować środowisko w kodzie języka Python przy użyciu polecenia validateSession()
:
DatabricksSession.builder.validateSession(True).getOrCreate()