Beräkningskonfiguration för Databricks Connect
Kommentar
Den här artikeln beskriver Databricks Connect för Databricks Runtime 13.3 LTS och senare.
I den här artikeln konfigurerar du egenskaper för att upprätta en anslutning mellan Databricks Connect och ditt Azure Databricks-kluster eller serverlös beräkning. Den här informationen gäller för Python- och Scala-versionen av Databricks Connect om inget annat anges.
Med Databricks Connect kan du ansluta populära IDE:er som Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, notebook-servrar och andra anpassade program till Azure Databricks-kluster. Se Vad är Databricks Connect?.
Krav
Om du vill konfigurera en anslutning till Databricks-beräkning måste du ha:
- Databricks Connect installerat. Installationskrav och steg för specifika språkversioner av Databricks Connect finns i:
- Ett Azure Databricks-konto och en arbetsyta som har Unity Catalog aktiverat. Se Konfigurera och hantera Unity Catalog och Aktivera en arbetsyta för Unity Catalog.
- Ett Azure Databricks-kluster med Databricks Runtime 13.3 LTS eller senare.
- Databricks Runtime-versionen av klustret måste vara lika med eller högre än Databricks Connect-paketversionen. Databricks rekommenderar att du använder det senaste paketet med Databricks Connect som matchar Databricks Runtime-versionen. Om du vill använda funktioner som är tillgängliga i senare versioner av Databricks Runtime måste du uppgradera Databricks Connect-paketet. Se viktig information om Databricks Connect för en lista över tillgängliga Databricks Connect-versioner. Viktig information om Databricks Runtime-versionen finns i Viktig information om versioner och kompatibilitet i Databricks Runtime.
- Klustret måste använda ett klusteråtkomstläge för Tilldelad eller Delad. Se Åtkomstlägen.
Ställ in
Innan du börjar behöver du följande:
- Om du ansluter till ett kluster, ID för klustret. Du kan hämta kluster-ID:t från URL:en. Se Kluster-URL och ID.
- Instansnamnet för Azure Databricks-arbetsytan. Det här är värdet servervärdnamn för din beräkning. Se Hämta anslutningsinformation för en Azure Databricks-beräkningsresurs.
- Andra egenskaper som behövs för den Databricks-autentiseringstyp som du vill använda.
Kommentar
OAuth-autentisering från användare till dator (U2M) stöds på Databricks SDK för Python 0.19.0 och senare. Uppdatera kodprojektets installerade version av Databricks SDK för Python till 0.19.0 eller senare för att använda OAuth U2M-autentisering. Se Kom igång med Databricks SDK för Python.
För OAuth U2M-autentisering måste du använda Databricks CLI för att autentisera innan du kör Python-koden. Se Självstudien.
OAuth-autentisering från dator till dator (M2M) autentisering med OAuth från dator till dator (M2M) stöds på Databricks SDK för Python 0.18.0 och senare. Uppdatera kodprojektets installerade version av Databricks SDK för Python till 0.18.0 eller senare för att använda OAuth M2M-autentisering. Se Kom igång med Databricks SDK för Python.
Databricks SDK för Python har ännu inte implementerat Azure-hanterad identitetsautentisering.
Konfigurera en anslutning till ett kluster
Det finns flera sätt att konfigurera anslutningen till klustret. Databricks Connect söker efter konfigurationsegenskaper i följande ordning och använder den första konfigurationen som hittas. Avancerad konfigurationsinformation finns i Avancerad användning av Databricks Connect för Python.
- DatabricksSession-klassens remote()-metod.
- En Databricks-konfigurationsprofil
- Miljövariabeln DATABRICKS_CONFIG_PROFILE
- En miljövariabel för varje konfigurationsegenskap
- En Databricks-konfigurationsprofil med namnet DEFAULT
Klassens DatabricksSession
remote()
metod
För det här alternativet, som endast gäller för autentisering med personlig åtkomsttoken i Azure Databricks, anger du namnet på arbetsytans instans, azure Databricks personliga åtkomsttoken och klustrets ID.
Du kan initiera klassen på DatabricksSession
flera sätt:
- Ange fälten
host
,token
ochcluster_id
iDatabricksSession.builder.remote()
. - Använd Databricks SDK:s
Config
klass. - Ange en Databricks-konfigurationsprofil tillsammans med fältet
cluster_id
.
I stället för att ange dessa anslutningsegenskaper i koden rekommenderar Databricks att du konfigurerar egenskaper via miljövariabler eller konfigurationsfiler enligt beskrivningen i det här avsnittet. I följande kodexempel förutsätts att du tillhandahåller en viss implementering av de föreslagna retrieve_*
funktionerna för att hämta nödvändiga egenskaper från användaren eller från något annat konfigurationsarkiv, till exempel Azure KeyVault.
Koden för var och en av dessa metoder är följande:
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()
Scala
// 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()
Scala
// 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()
Scala
// 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()
En Databricks-konfigurationsprofil
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id
och andra fält som behövs för den Databricks-autentiseringstyp som du vill använda.
De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
Ange sedan namnet på den här konfigurationsprofilen via konfigurationsklassen.
Du kan ange cluster_id
på ett par sätt:
- Inkludera fältet
cluster_id
i konfigurationsprofilen och ange sedan bara konfigurationsprofilens namn. - Ange namnet på konfigurationsprofilen tillsammans med fältet
cluster_id
.
Om du redan har angett DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller ange cluster_id
.
Koden för var och en av dessa metoder är följande:
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()
Scala
// 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()
Scala
// 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()
Miljövariabeln DATABRICKS_CONFIG_PROFILE
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id
och andra fält som behövs för den Databricks-autentiseringstyp som du vill använda.
Om du redan har angett DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller ange cluster_id
.
De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
DATABRICKS_CONFIG_PROFILE
Ange miljövariabeln till namnet på den här konfigurationsprofilen.
DatabricksSession
Initiera sedan klassen:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
En miljövariabel för varje konfigurationsegenskap
För det här alternativet anger DATABRICKS_CLUSTER_ID
du miljövariabeln och eventuella andra miljövariabler som krävs för den Databricks-autentiseringstyp som du vill använda.
De miljövariabler som krävs för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
DATABRICKS_HOST
ochDATABRICKS_TOKEN
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
ochDATABRICKS_CLIENT_SECRET
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
DATABRICKS_HOST
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
DATABRICKS_HOST
, ,ARM_TENANT_ID
ARM_CLIENT_ID
,ARM_CLIENT_SECRET
och eventuelltDATABRICKS_AZURE_RESOURCE_ID
. - För Azure CLI-autentisering:
DATABRICKS_HOST
. - För Azure-hanterad identitetsautentisering (där det stöds):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
och eventuelltDATABRICKS_AZURE_RESOURCE_ID
.
DatabricksSession
Initiera sedan klassen:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
En Databricks-konfigurationsprofil med namnet DEFAULT
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet cluster_id
och andra fält som behövs för den Databricks-autentiseringstyp som du vill använda.
Om du redan har angett DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller ange cluster_id
.
De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
Ge den här konfigurationsprofilen DEFAULT
namnet .
DatabricksSession
Initiera sedan klassen:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Konfigurera en anslutning till serverlös beräkning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Databricks Connect för Python stöder anslutning till serverlös beräkning. Om du vill använda den här funktionen måste kraven för att ansluta till serverlösa uppfyllas. Se Krav.
Viktigt!
Den här funktionen har följande begränsningar:
- Den här funktionen stöds endast i Databricks Connect för Python.
- Alla Databricks Connect för Python-begränsningar
- Alla serverlösa beräkningsbegränsningar
- Endast Python-beroenden som ingår som en del av en serverlös beräkningsmiljö kan användas för UDF:er. Se serverlösa miljöversioner. Det går inte att installera ytterligare beroenden.
- UDF:er med anpassade moduler stöds inte.
Du kan konfigurera en anslutning till serverlös beräkning på något av följande sätt:
Ange variabeln
DATABRICKS_SERVERLESS_COMPUTE_ID
för lokal miljö tillauto
. Om den här miljövariabeln har angettscluster_id
ignorerar Databricks Connect .I en lokal Databricks-konfigurationsprofil anger du
serverless_compute_id = auto
och refererar sedan till profilen från koden.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Eller använd något av följande alternativ:
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()
Kommentar
Den serverlösa beräkningssessionen överskrider tidsgränsen efter 10 minuters inaktivitet. Efter detta bör en ny Spark-session skapas med hjälp av getOrCreate()
för att ansluta till serverlös beräkning.
Verifiera anslutningen till Databricks
Om du vill verifiera din miljö, är standardautentiseringsuppgifterna och anslutningen till beräkning korrekt konfigurerade för Databricks Connect genom att köra databricks-connect test
kommandot, som misslyckas med en slutkod som inte är noll och ett motsvarande felmeddelande när den identifierar eventuell inkompatibilitet i installationen.
databricks-connect test
I Databricks Connect 14.3 och senare kan du även verifiera din miljö med hjälp av validateSession()
:
DatabricksSession.builder.validateSession(True).getOrCreate()
Inaktivera Databricks Connect
Databricks Connect-tjänster (och underliggande Spark Connect) kan inaktiveras i ett visst kluster.
Om du vill inaktivera Databricks Connect-tjänsten anger du följande Spark-konfiguration i klustret.
spark.databricks.service.server.enabled false