Freigeben über


Computekonfiguration für Databricks Connect

Hinweis

Dieser Artikel behandelt Databricks Connect für Databricks Runtime Version 13.3 LTS und höher.

In diesem Artikel konfigurieren Sie Eigenschaften, um eine Verbindung zwischen Databricks Connect und Ihrem Azure Databricks-Cluster oder serverlosen Compute herzustellen. Diese Informationen gelten für die Python- und Scala-Version von Databricks Connect, sofern nicht anders angegeben.

Mit Databricks Connect können Sie beliebte IDEs wie Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, Notebookserver und andere benutzerdefinierte Anwendungen mit Azure Databricks-Clustern verbinden. Weitere Informationen finden Sie unter Was ist Databricks Connect?.

Anforderungen

Um eine Verbindung mit Databricks zu konfigurieren, müssen Sie folgendes haben:

Setup

Bevor Sie beginnen, benötigen Sie Folgendes:

Hinweis

Konfigurieren einer Verbindung mit einem Cluster

Es gibt mehrere Möglichkeiten zum Konfigurieren der Verbindung mit Ihrem Cluster. Databricks Connect sucht in der folgenden Reihenfolge nach Konfigurationseigenschaften und verwendet die erste gefundene Konfiguration. Erweiterte Konfigurationsinformationen finden Sie unter Erweiterte Verwendung von Databricks Connect for Python.

  1. Die Remote()-Methode der DatabricksSession-Klasse.
  2. Ein Databricks-Konfigurationsprofil
  3. Die Umgebungsvariable DATABRICKS_CONFIG_PROFILE
  4. Eine Umgebungsvariable für jede Verbindungseigenschaft
  5. Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT

Die remote()-Methode der DatabricksSession-Klasse

Geben Sie für diese Option, die nur für die Authentifizierung mit persönlichem Zugriffstoken in Azure Databricks gilt, den Instanzname des Arbeitsbereichs, das persönliche Zugriffstoken in Azure Databricks und die ID des Clusters an.

Sie können die DatabricksSession Klasse auf verschiedene Arten initialisieren:

  • Legen Sie die Felder host, token und cluster_id in DatabricksSession.builder.remote() fest.
  • Verwenden Sie die Config-Klasse des Databricks SDK.
  • Geben Sie ein Databricks-Konfigurationsprofil zusammen mit dem cluster_id-Feld an.

Anstatt diese Verbindungseigenschaften in Ihrem Code anzugeben, empfiehlt Databricks, Eigenschaften über Umgebungsvariablen oder Konfigurationsdateien zu konfigurieren, wie in diesem Abschnitt beschrieben. In den folgenden Codebeispielen wird davon ausgegangen, dass Sie eine Implementierung der vorgeschlagenen retrieve_*-Funktionen bereitstellen, um die erforderlichen Eigenschaften vom Benutzer oder aus einem anderen Konfigurationsspeicher abzurufen, z. B. dem Azure KeyVault.

Der Code für jeden dieser Ansätze lautet wie folgt:

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()

Ein Azure Databricks-Konfigurationsprofil

Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

Legen Sie dann den Namen dieses Konfigurationsprofils über die Konfigurationsklasse fest.

Sie können auf verschiedene Arten angeben cluster_id :

  • Fügen Sie das cluster_id-Feld in Ihr Konfigurationsprofil ein, und geben Sie dann einfach den Namen des Konfigurationsprofils an.
  • Geben Sie den Konfigurationsprofilnamen zusammen mit dem cluster_id-Feld an.

Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id nicht ebenfalls angeben.

Der Code für jeden dieser Ansätze lautet wie folgt:

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()

Die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable

Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id nicht ebenfalls angeben.

Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

Legen Sie die DATABRICKS_CONFIG_PROFILE-Umgebungsvariable auf den Namen dieses Konfigurationsprofils fest. Initialisieren Sie dann die DatabricksSession Klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

Eine Umgebungsvariable für jede Verbindungseigenschaft

Legen Sie für diese Option die DATABRICKS_CLUSTER_ID-Umgebungsvariable und alle anderen Umgebungsvariablen fest, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

Die folgenden Umgebungsvariablen sind für die einzelnen Authentifizierungstypen erforderlich:

Initialisieren Sie dann die DatabricksSession Klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT

Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.

Wenn Sie die DATABRICKS_CLUSTER_ID-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id nicht ebenfalls angeben.

Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:

Benennen Sie dieses Konfigurationsprofil DEFAULT.

Initialisieren Sie dann die DatabricksSession Klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

Konfigurieren einer Verbindung mit serverlosem Compute

Wichtig

Dieses Feature befindet sich in der Public Preview.

Databricks Connect für Python unterstützt die Verbindung mit serverlosem Compute. Um dieses Feature zu verwenden, müssen die Anforderungen für die Verbindung mit serverlosen Servern erfüllt sein. Siehe Anforderungen.

Wichtig

Für diese Funktion gelten folgende Einschränkungen:

Sie können eine Verbindung mit serverlosem Compute auf eine der folgenden Arten konfigurieren:

  • Legen Sie stattdessen die lokale Umgebungsvariable DATABRICKS_SERVERLESS_COMPUTE_ID auf auto fest. Wenn diese Umgebungsvariable festgelegt ist, ignoriert Databricks Connect die cluster_id.

  • Legen Sie in einem lokalen Databricks-Konfigurationsprofil festserverless_compute_id = auto, und verweisen Sie dann auf dieses Profil aus Ihrem Code.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Oder verwenden Sie eine der folgenden Optionen:

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()

Hinweis

Die serverlose Computesitzung ist nach 10 Minuten Inaktivität nicht mehr vorhanden. Danach sollte eine neue Spark-Sitzung erstellt getOrCreate() werden, um eine Verbindung mit serverlosem Compute herzustellen.

Überprüfen der Verbindung mit Databricks

Um Ihre Umgebung zu überprüfen, werden Standardanmeldeinformationen und die Verbindung zur Berechnung ordnungsgemäß für Databricks Connect eingerichtet, führen Sie den databricks-connect test-Befehl aus, der mit einem Nicht-Null-Exitcode fehlschlägt und eine entsprechende Fehlermeldung angezeigt wird, wenn eine Inkompatibilität im Setup erkannt wird.

databricks-connect test

In Databricks Connect 14.3 und höher können Sie Ihre Umgebung auch mithilfe von validateSession():

DatabricksSession.builder.validateSession(True).getOrCreate()

Deaktivieren von Databricks Connect

Databricks Connect-Dienste (und die zugrunde liegenden Spark Connect-Dienste) können für jeden Cluster deaktiviert werden.

Um den Databricks Connect-Dienst zu deaktivieren, legen Sie die folgende Spark-Konfiguration für das Cluster fest.

spark.databricks.service.server.enabled false