Delen via


Berekeningsconfiguratie voor Databricks Connect

Notitie

Dit artikel bevat informatie over Databricks Connect voor Databricks Runtime 13.3 LTS en hoger.

In dit artikel configureert u eigenschappen om een verbinding tot stand te brengen tussen Databricks Connect en uw Azure Databricks-cluster of serverloze compute. Deze informatie is van toepassing op de Python- en Scala-versie van Databricks Connect, tenzij anders vermeld.

Met Databricks Connect kunt u populaire IDE's, zoals Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, notebookservers en andere aangepaste toepassingen, verbinden met Azure Databricks-clusters. Zie Wat is Databricks Connect?

Vereisten

Als u een verbinding met Databricks Compute wilt configureren, moet u het volgende hebben:

Instellingen

Voordat u begint, hebt u het volgende nodig:

Notitie

Een verbinding met een cluster configureren

Er zijn meerdere manieren om de verbinding met uw cluster te configureren. Databricks Connect zoekt in de volgende volgorde naar configuratie-eigenschappen en gebruikt de eerste configuratie die wordt gevonden. Zie Geavanceerd gebruik van Databricks Connect voor Python voor geavanceerde configuratie-informatie.

  1. De methode remote() van de DatabricksSession-klasse.
  2. Een Databricks-configuratieprofiel
  3. De omgevingsvariabele DATABRICKS_CONFIG_PROFILE
  4. Een omgevingsvariabele voor elke configuratie-eigenschap
  5. Een Databricks-configuratieprofiel met de naam DEFAULT

De methode van remote() de DatabricksSession klasse

Voor deze optie, die alleen van toepassing is op persoonlijke toegangstokenverificatie van Azure Databricks, geeft u de naam van het werkruimte-exemplaar, het persoonlijke toegangstoken van Azure Databricks en de id van het cluster op.

U kunt de DatabricksSession klasse op verschillende manieren initialiseren:

  • Stel de host, tokenen cluster_id de velden in DatabricksSession.builder.remote().
  • Gebruik de klasse van Config de Databricks SDK.
  • Geef een Databricks-configuratieprofiel op samen met het cluster_id veld.

In plaats van deze verbindingseigenschappen in uw code op te geven, raadt Databricks aan om eigenschappen te configureren via omgevingsvariabelen of configuratiebestanden, zoals beschreven in deze sectie. In de volgende codevoorbeelden wordt ervan uitgegaan dat u een implementatie van de voorgestelde retrieve_* functies opgeeft om de benodigde eigenschappen op te halen van de gebruiker of uit een ander configuratiearchief, zoals Azure KeyVault.

De code voor elk van deze benaderingen is als volgt:

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

Een Databricks-configuratieprofiel

Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het Databricks-verificatietype dat u wilt gebruiken.

De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

Stel vervolgens de naam van dit configuratieprofiel in via de configuratieklasse.

U kunt op een aantal manieren opgeven cluster_id :

  • Neem het cluster_id veld op in uw configuratieprofiel en geef de naam van het configuratieprofiel op.
  • Geef de naam van het configuratieprofiel op samen met het cluster_id veld.

Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u niet ook op te geven cluster_id.

De code voor elk van deze benaderingen is als volgt:

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

De DATABRICKS_CONFIG_PROFILE omgevingsvariabele

Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het Databricks-verificatietype dat u wilt gebruiken.

Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u niet ook op te geven cluster_id.

De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

Stel de DATABRICKS_CONFIG_PROFILE omgevingsvariabele in op de naam van dit configuratieprofiel. Initialiseer vervolgens de DatabricksSession klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Een omgevingsvariabele voor elke configuratie-eigenschap

Stel voor deze optie de DATABRICKS_CLUSTER_ID omgevingsvariabele en eventuele andere omgevingsvariabelen in die nodig zijn voor het Databricks-verificatietype dat u wilt gebruiken.

De vereiste omgevingsvariabelen voor elk verificatietype zijn als volgt:

Initialiseer vervolgens de DatabricksSession klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Een Databricks-configuratieprofiel met de naam DEFAULT

Voor deze optie maakt of identificeert u een Azure Databricks-configuratieprofiel met het veld cluster_id en eventuele andere velden die nodig zijn voor het Databricks-verificatietype dat u wilt gebruiken.

Als u de DATABRICKS_CLUSTER_ID omgevingsvariabele al hebt ingesteld met de id van het cluster, hoeft u niet ook op te geven cluster_id.

De vereiste configuratieprofielvelden voor elk verificatietype zijn als volgt:

Geef dit configuratieprofiel DEFAULTeen naam.

Initialiseer vervolgens de DatabricksSession klasse:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Een verbinding met serverloze berekeningen configureren

Belangrijk

Deze functie is beschikbaar als openbare preview.

Databricks Connect voor Python biedt ondersteuning voor het maken van verbinding met serverloze berekeningen. Als u deze functie wilt gebruiken, moet aan de vereisten voor het maken van verbinding met serverloos worden voldaan. Zie Vereisten.

Belangrijk

Deze functie heeft de volgende beperkingen:

U kunt een verbinding met serverloze berekeningen op een van de volgende manieren configureren:

  • Stel de lokale omgevingsvariabele DATABRICKS_SERVERLESS_COMPUTE_ID in op auto. Als deze omgevingsvariabele is ingesteld, negeert Databricks Connect het cluster_id.

  • Stel serverless_compute_id = autoin een lokaal Databricks-configuratieprofiel in en verwijs vervolgens naar dat profiel vanuit uw code.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Of gebruik een van de volgende opties:

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

Notitie

Er treedt een time-out op voor de serverloze rekensessie na 10 minuten inactiviteit. Hierna moet er een nieuwe Spark-sessie worden gemaakt met behulp van getOrCreate() verbinding met serverloze compute.

De verbinding met Databricks valideren

Als u uw omgeving, standaardreferenties en verbinding met berekeningen wilt valideren, moet u de databricks-connect test opdracht uitvoeren die mislukt met een afsluitcode zonder nul en een bijbehorend foutbericht wanneer er incompatibiliteit in de installatie wordt gedetecteerd.

databricks-connect test

In Databricks Connect 14.3 en hoger kunt u uw omgeving ook valideren met behulp van validateSession():

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

Databricks Connect uitschakelen

Databricks Connect (en de onderliggende Spark Connect)-services kunnen worden uitgeschakeld op elk cluster.

Als u de Databricks Connect-service wilt uitschakelen, stelt u de volgende Spark-configuratie in het cluster in.

spark.databricks.service.server.enabled false