Dela via


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:

Ställ in

Innan du börjar behöver du följande:

Kommentar

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.

  1. DatabricksSession-klassens remote()-metod.
  2. En Databricks-konfigurationsprofil
  3. Miljövariabeln DATABRICKS_CONFIG_PROFILE
  4. En miljövariabel för varje konfigurationsegenskap
  5. En Databricks-konfigurationsprofil med namnet DEFAULT

Klassens DatabricksSessionremote() 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, tokenoch cluster_id i DatabricksSession.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:

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:

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:

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:

Ge den här konfigurationsprofilen DEFAULTnamnet .

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:

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ö till auto. Om den här miljövariabeln har angetts cluster_idignorerar Databricks Connect .

  • I en lokal Databricks-konfigurationsprofil anger du serverless_compute_id = autooch 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