Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.
Na tej stronie opisano różne sposoby konfigurowania połączenia między usługą Databricks Connect i Azure Databricks klaster lub obliczenia bezserwerowe.
Usługa Databricks Connect umożliwia łączenie popularnych środowisk IDE, takich jak Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, serwery notebooków i inne niestandardowe aplikacje do klastrów Azure Databricks. Zobacz Databricks Connect.
Ustawienia
Przed rozpoczęciem potrzebne są następujące elementy:
- Zainstalowano program Databricks Connect. Aby uzyskać informacje o wymaganiach dotyczących instalacji, zobacz Wymagania dotyczące użycia programu Databricks Connect.
- Nazwa wystąpienia obszaru roboczego Azure Databricks . To jest wartość Nazwa hosta serwera dla twojego obliczenia. Zobacz Jak uzyskać szczegóły połączenia dla zasobu obliczeniowego Azure Databricks.
- Jeśli łączysz się z klasycznym środowiskiem obliczeniowym, identyfikator klastra. Identyfikator klastra można pobrać z adresu URL. Zobacz Adres URL i identyfikator zasobu obliczeniowego.
Konfigurowanie połączenia z klastrem
Istnieje wiele sposobów konfigurowania połączenia z klastrem. 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 Zaawansowane użycie usługi Databricks Connect.
- 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 Uwierzytelnianie za pomocą osobistych tokenów dostępu Azure Databricks (wersja starsza), określ nazwę wystąpienia obszaru roboczego, osobisty token dostępu Azure Databricks i identyfikator klastra.
Klasę DatabricksSession można zainicjować na kilka sposobów:
- Ustaw pola
host,tokenicluster_idwDatabricksSession.builder.remote(). - Użyj klasy SDK
ConfigDatabricks. - Określ profil konfiguracji usługi Databricks wraz z polem
cluster_id.
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 przyjęto założenie, że podano implementację proponowanych funkcji retrieve_* w celu uzyskania niezbędnych 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:
Python
# 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()
Skala
// Set the host, token, and clusterId fields in DatabricksSession.builder.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder()
.host(retrieveWorkspaceInstanceName())
.token(retrieveToken())
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# 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()
Skala
// 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 clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setHost(retrieveWorkspaceInstanceName())
.setToken(retrieveToken())
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# 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()
Skala
// Specify a Databricks configuration profile along with the clusterId 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 clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Profil konfiguracji usługi Databricks
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji Azure Databricks
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania Azure Databricks za pomocą osobistego tokenu dostępu:
hostitoken. - 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 jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secreti prawdopodobnieazure_workspace_resource_id. - W przypadku uwierzytelniania Azure CLI:
host. - W przypadku uwierzytelniania przy użyciu zarządzanych tożsamości Azure (gdzie jest ono obsługiwane):
host,azure_use_msi,azure_client_idi prawdopodobnieazure_workspace_resource_id.
Następnie ustaw nazwę tego profilu konfiguracji za pomocą klasy konfiguracji.
Możesz określić cluster_id na kilka sposobów:
- Uwzględnij
cluster_idpole 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:
Python
# 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()
Skala
// Include the cluster_id field in your configuration profile, and then
// just specify the configuration profile's name:
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.getOrCreate()
Python
# 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()
Skala
// Specify a Databricks configuration profile along with the clusterId 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 clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Zmienna DATABRICKS_CONFIG_PROFILE środowiskowa
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji Azure Databricks
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 Azure Databricks za pomocą osobistego tokenu dostępu:
hostitoken. - 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 jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secreti prawdopodobnieazure_workspace_resource_id. - W przypadku uwierzytelniania Azure CLI:
host. - W przypadku uwierzytelniania przy użyciu zarządzanych tożsamości Azure (gdzie jest ono obsługiwane):
host,azure_use_msi,azure_client_idi prawdopodobnieazure_workspace_resource_id.
Ustaw zmienną DATABRICKS_CONFIG_PROFILE środowiskową na nazwę tego profilu konfiguracji. Następnie zainicjuj klasę DatabricksSession :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Skala
import com.databricks.connect.DatabricksSession
val 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 Azure Databricks za pomocą osobistego tokenu dostępu:
DATABRICKS_HOSTiDATABRICKS_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 jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory):
DATABRICKS_HOST,ARM_TENANT_ID,ARM_CLIENT_ID,ARM_CLIENT_SECRETi prawdopodobnieDATABRICKS_AZURE_RESOURCE_ID. - W przypadku uwierzytelniania Azure CLI:
DATABRICKS_HOST. - W przypadku uwierzytelniania przy użyciu zarządzanych tożsamości Azure (gdzie jest ono obsługiwane):
DATABRICKS_HOST,ARM_USE_MSI,ARM_CLIENT_IDi prawdopodobnieDATABRICKS_AZURE_RESOURCE_ID.
Następnie zainicjuj klasę DatabricksSession :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Skala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Profil konfiguracji usługi Databricks o nazwie DEFAULT
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji Azure Databricks
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 Azure Databricks za pomocą osobistego tokenu dostępu:
hostitoken. - 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 jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secreti prawdopodobnieazure_workspace_resource_id. - W przypadku uwierzytelniania Azure CLI:
host. - W przypadku uwierzytelniania przy użyciu zarządzanych tożsamości Azure (gdzie jest ono obsługiwane):
host,azure_use_msi,azure_client_idi prawdopodobnieazure_workspace_resource_id.
Nadaj nazwę temu profilowi konfiguracji DEFAULT.
Następnie zainicjuj klasę DatabricksSession :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Skala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Skonfiguruj połączenie z środowiskiem obliczeń bezserwerowych
Usługa Databricks Connect dla Python i języka Scala obsługuje nawiązywanie połączenia z bezserwerowymi obliczeniami. Aby korzystać z tej funkcji, należy spełnić wymagania dotyczące wersji potrzebnej do nawiązywania połączenia z infrastrukturą bezserwerową. Zobacz Wymagania dotyczące użycia usługi Databricks Connect.
Ważne
Ta funkcja ma następujące ograniczenia:
- Usługa Databricks Connect dla języka Scala obsługuje obliczenia bezserwerowe w wersji beta.
- Wersja programu Databricks Connect i wersja Python lub Scala muszą być zgodne. Zobacz Wersje programu Databricks Connect.
- Wszystkie ograniczenia Databricks Connect dla Python lub Databricks Connect dla języka Scala.
- Wszystkie ograniczenia obliczeniowe bezserwerowe
W przypadku Python można skonfigurować połączenie z bezserwerowymi obliczeniami w środowisku lokalnym:
Ustaw lokalną zmienną środowiskową
DATABRICKS_SERVERLESS_COMPUTE_IDnaauto. Jeśli ta zmienna środowiskowa jest ustawiona, program Databricks Connect ignoruje wartośćcluster_id.W lokalnym profilu konfiguracji usługi Databricks, ustaw
serverless_compute_id = auto, a następnie odwołaj się do tego profilu w kodzie.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Lub dla Python lub Scala:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().getOrCreate()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
Skala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.serverless().getOrCreate()
Weryfikowanie połączenia z usługą Databricks
Aby sprawdzić, czy środowisko, domyślne poświadczenia i połączenie z obliczeniami są poprawnie skonfigurowane dla usługi Databricks Connect, uruchom databricks-connect test polecenie:
databricks-connect test
To polecenie kończy się niepowodzeniem z kodem zakończenia innym niż zero i odpowiednim komunikatem o błędzie, gdy wykryje niezgodność konfiguracji, na przykład gdy wersja programu Databricks Connect jest niezgodna z bezserwerową wersją obliczeniową usługi Databricks. Aby uzyskać informacje o obsłudze wersji programu Databricks Connect, zobacz Wersje programu Databricks Connect.
W programie Databricks Connect 14.3 lub nowszym możesz również zweryfikować środowisko przy użyciu polecenia validateSession():
DatabricksSession.builder.validateSession(True).getOrCreate()
Wyłączanie usługi Databricks Connect
Usługi Databricks Connect (i oparty na platformie Spark Connect) można wyłączyć w dowolnym klastrze.
Aby wyłączyć usługę Databricks Connect, ustaw następującą konfigurację platformy Spark w klastrze.
spark.databricks.service.server.enabled false