Konfigurace výpočetních prostředků pro Databricks Connect

Poznámka:

Tento článek popisuje Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší.

Tato stránka popisuje různé způsoby konfigurace připojení mezi službou Databricks Connect a vaším Azure Databricks cluster nebo serverless compute.

Databricks Connect umožňuje připojit k Azure Databricks clusterům oblíbená prostředí IDE, jako jsou Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, servery poznámkových bloků a další vlastní aplikace. Viz Databricks Connect.

Nastavení

Než začnete, budete potřebovat následující:

Konfigurace připojení ke clusteru

Existuje několik způsobů, jak nakonfigurovat připojení ke clusteru. Databricks Connect vyhledá vlastnosti konfigurace v následujícím pořadí a použije první nalezenou konfiguraci. Pokročilé informace o konfiguraci najdete v tématu Pokročilé využití služby Databricks Connect.

  1. Metoda remote() třídy DatabricksSession.
  2. Konfigurační profil Databricks
  3. Proměnná prostředí DATABRICKS_CONFIG_PROFILE
  4. Proměnná prostředí pro každou vlastnost konfigurace
  5. Konfigurační profil Databricks s názvem DEFAULT

DatabricksSession Metoda třídy remote()

Pro tuto možnost, která platí pouze pro Ověřit pomocí osobních přístupových tokenů Azure Databricks (starší verze), zadejte název instance pracovního prostoru, osobní přístupový token Azure Databricks a ID clusteru.

Třídu DatabricksSession můžete inicializovat několika způsoby:

  • Nastavte pole host, token a cluster_id v DatabricksSession.builder.remote().
  • Použijte třídu SDK Databricks Config.
  • Zadejte konfigurační profil Databricks spolu s polem cluster_id .

Místo zadávání těchto vlastností připojení v kódu doporučuje Databricks konfigurovat vlastnosti prostřednictvím proměnných prostředí nebo konfiguračních souborů, jak je popsáno v této části. Následující příklady kódu předpokládají, že zadáte určitou implementaci navrhovaných funkcí retrieve_*, abyste získali potřebné vlastnosti od uživatele nebo z jiného úložiště konfigurace, například Azure KeyVault.

Kód pro každý z těchto přístupů je následující:

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

Konfigurační profil Databricks

Pro tuto možnost vytvořte nebo identifikujte profil konfigurace Azure Databricks obsahující pole cluster_id a všechna další pole nezbytná pro typ ověřování Databricks, která chcete použít.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

Potom nastavte název tohoto konfiguračního profilu prostřednictvím třídy konfigurace.

Můžete zadat cluster_id několika způsoby:

  • Do konfiguračního cluster_id profilu zahrňte pole a zadejte název konfiguračního profilu.
  • Zadejte název konfiguračního profilu spolu s polem cluster_id .

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Kód pro každý z těchto přístupů je následující:

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

Proměnná DATABRICKS_CONFIG_PROFILE prostředí

Pro tuto možnost vytvořte nebo identifikujte profil konfigurace Azure Databricks obsahující pole cluster_id a všechna další pole nezbytná pro typ ověřování Databricks, která chcete použít.

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

Nastavte proměnnou DATABRICKS_CONFIG_PROFILE prostředí na název tohoto konfiguračního profilu. Potom inicializujete DatabricksSession třídu:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Proměnná prostředí pro každou vlastnost konfigurace

Pro tuto možnost nastavte proměnnou DATABRICKS_CLUSTER_ID prostředí a všechny další proměnné prostředí, které jsou nezbytné pro typ ověřování Databricks, který chcete použít.

Požadované proměnné prostředí pro každý typ ověřování jsou následující:

Potom inicializujete DatabricksSession třídu:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Konfigurační profil Databricks s názvem DEFAULT

Pro tuto možnost vytvořte nebo identifikujte profil konfigurace Azure Databricks obsahující pole cluster_id a všechna další pole nezbytná pro typ ověřování Databricks, která chcete použít.

Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

Pojmenujte tento konfigurační profil DEFAULT.

Potom inicializujete DatabricksSession třídu:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Konfigurace připojení k bezserverovým výpočetním prostředkům

Databricks Connect pro Python a Scala podporují připojení k bezserverové výpočetní službě. Aby bylo možné tuto funkci používat, musí být splněny požadavky na verzi pro připojení k bezserverové aplikaci. Viz požadavky na využití Databricks Connect.

Důležité

Tato funkce má následující omezení:

Pro Python můžete nakonfigurovat připojení k bezserverovým výpočetním prostředkům v místním prostředí:

  • Nastavte místní proměnnou DATABRICKS_SERVERLESS_COMPUTE_ID prostředí na autohodnotu . Pokud je tato proměnná prostředí nastavená, Databricks Connect ignoruje cluster_id.

  • V místním konfiguračním profilu Databricks nastavte serverless_compute_id = autoa potom na tento profil odkazujte z vašeho kódu.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    

Nebo pro Python nebo Scala:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.serverless().getOrCreate()
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

Ověření připojení k Databricks

Spuštěním databricks-connect test příkazu ověřte, že vaše prostředí, výchozí přihlašovací údaje a připojení k výpočetním prostředkům jsou správně nastavené pro Databricks Connect:

databricks-connect test

Tento příkaz selže s nenulovým ukončovacím kódem a odpovídající chybovou zprávou, když zjistí jakoukoli nekompatibilitu v instalačním programu, například když je verze Databricks Connect nekompatibilní s bezserverovou výpočetní verzí Databricks. Informace o podpoře verze Databricks Connect najdete v tématu Verze Databricks Connect.

Ve službě Databricks Connect 14.3 a vyšší můžete také ověřit své prostředí pomocí validateSession():

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

Zakázání služby Databricks Connect

Databricks Connect (a základní služby Spark Connect) je možné zakázat v jakémkoli daném clusteru.

Pokud chcete zakázat službu Databricks Connect, nastavte v clusteru následující konfiguraci Sparku.

spark.databricks.service.server.enabled false