Databricks Connect için işlem yapılandırması

Not

Bu makale Databricks Runtime 13.3 LTS ve üzeri için Databricks Connect'i kapsar.

Bu sayfada Databricks Connect ile Azure Databricks cluster veya sunucusuz işlem arasında bağlantı yapılandırmanın farklı yolları açıklanmaktadır.

Databricks Connect, Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, not defteri sunucuları ve diğer özel uygulamalar gibi popüler IDE'leri Azure Databricks kümelere bağlamanızı sağlar. Bkz. Databricks Connect.

Ayarlama

Başlamadan önce aşağıdakilere ihtiyacınız vardır:

Kümeye bağlantı yapılandırma

Kümenize bağlantıyı yapılandırmanın birden çok yolu vardır. Databricks Connect, yapılandırma özelliklerini aşağıdaki sırayla arar ve bulduğu ilk yapılandırmayı kullanır. Gelişmiş yapılandırma bilgileri için bkz. Databricks Connect'in gelişmiş kullanımı.

  1. DatabricksSession sınıfının remote() yöntemi.
  2. Databricks yapılandırma profili
  3. DATABRICKS_CONFIG_PROFILE ortam değişkeni
  4. Her yapılandırma özelliği için bir ortam değişkeni
  5. DEFAULT adlı bir Databricks yapılandırma profili

Sınıfın DatabricksSessionremote() yöntemi

Authenticate ile yalnızca Azure Databricks kişisel erişim belirteçleri (eski) için geçerli olan bu seçenek için çalışma alanı örneği adını, Azure Databricks kişisel erişim belirtecini ve kümenin kimliğini belirtin.

Sınıfı çeşitli yollarla başlatabilirsiniz DatabricksSession :

  • hostiçindeki token, cluster_idve DatabricksSession.builder.remote() alanlarını ayarlayın.
  • Databricks SDK'sının sınıfını Config kullanın.
  • Bir Databricks yapılandırma profili belirtin ve cluster_id alanını ekleyin.

Databricks, kodunuzda bu bağlantı özelliklerini belirtmek yerine, bu bölümde açıklandığı gibi ortam değişkenleri veya yapılandırma dosyaları aracılığıyla özellikleri yapılandırmanızı önerir. Aşağıdaki kod örneklerde, kullanıcıdan veya retrieve_* gibi başka bir yapılandırma deposundan gerekli özellikleri almak için önerilen işlevlerinin bazı uygulamalarını sağladığınız varsayılır.

Bu yaklaşımların her birinin kodu aşağıdaki gibidir:

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 programlama dili

// 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 programlama dili

// 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 programlama dili

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

Databricks yapılandırma profili

Bu seçenek için, alanını ve kullanmak istediğiniz cluster_id için gereken diğer alanları içeren bir Azure Databricks configuration profili oluşturun veya tanımlayın.

Her kimlik doğrulama türü için gerekli yapılandırma profili alanları aşağıdaki gibidir:

Ardından yapılandırma sınıfı aracılığıyla bu yapılandırma profilinin adını ayarlayın.

Birkaç yolla belirtebilirsiniz cluster_id :

  • cluster_id Alanı yapılandırma profilinize ekleyin ve yapılandırma profilinin adını belirtmeniz yeter.
  • Alanıyla cluster_id birlikte yapılandırma profili adını belirtin.

Ortam değişkenini kümenin DATABRICKS_CLUSTER_ID kimliğiyle önceden ayarladıysanız, belirtmeniz de gerekmez cluster_id.

Bu yaklaşımların her birinin kodu aşağıdaki gibidir:

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 programlama dili

// 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 programlama dili

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

Ortam DATABRICKS_CONFIG_PROFILE değişkeni

Bu seçenek için, alanını ve kullanmak istediğiniz cluster_id için gereken diğer alanları içeren bir Azure Databricks configuration profili oluşturun veya tanımlayın.

Ortam değişkenini kümenin DATABRICKS_CLUSTER_ID kimliğiyle önceden ayarladıysanız, belirtmeniz de gerekmez cluster_id.

Her kimlik doğrulama türü için gerekli yapılandırma profili alanları aşağıdaki gibidir:

Ortam değişkenini DATABRICKS_CONFIG_PROFILE bu yapılandırma profilinin adına ayarlayın. Ardından DatabricksSession sınıfı başlatın.

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala programlama dili

import com.databricks.connect.DatabricksSession

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

Her yapılandırma özelliği için bir ortam değişkeni

Bu seçenek için, kullanmak istediğiniz Databricks kimlik doğrulama türüDATABRICKS_CLUSTER_IDgereken ortam değişkenini ve diğer ortam değişkenlerini ayarlayın.

Her kimlik doğrulama türü için gerekli ortam değişkenleri aşağıdaki gibidir:

Ardından DatabricksSession sınıfı başlatın.

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala programlama dili

import com.databricks.connect.DatabricksSession

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

Adlı bir Databricks yapılandırma profili DEFAULT

Bu seçenek için, alanını ve kullanmak istediğiniz cluster_id için gereken diğer alanları içeren bir Azure Databricks configuration profili oluşturun veya tanımlayın.

Ortam değişkenini kümenin DATABRICKS_CLUSTER_ID kimliğiyle önceden ayarladıysanız, belirtmeniz de gerekmez cluster_id.

Her kimlik doğrulama türü için gerekli yapılandırma profili alanları aşağıdaki gibidir:

Bu yapılandırma profilini olarak DEFAULTadlandır.

Ardından DatabricksSession sınıfı başlatın.

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala programlama dili

import com.databricks.connect.DatabricksSession

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

Sunucusuz işlemle bağlantı yapılandırma

Python için Databricks Connect ve Scala sunucusuz işlem için bağlanma desteği sağlar. Bu özelliği kullanmak için sunucusuz bağlantı için sürüm gereksinimleri karşılanmalıdır. Bkz. Databricks Connect kullanım gereksinimleri.

Önemli

Bu özellik aşağıdaki sınırlamalara sahiptir:

Python için, yerel ortamınızda sunucusuz işlemle bağlantı yapılandırabilirsiniz:

  • Yerel ortam değişkenini DATABRICKS_SERVERLESS_COMPUTE_ID olarak autoayarlayın. Bu ortam değişkeni ayarlanırsa, Databricks Connect değerini cluster_idyoksayar.

  • Yerel bir Databricks yapılandırma profilinde öğesini ayarlayın serverless_compute_id = auto, ardından kodunuzdan bu profile başvurun.

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

Veya Python veya Scala için:

Python

from databricks.connect import DatabricksSession

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

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

Scala programlama dili

import com.databricks.connect.DatabricksSession

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

Databricks bağlantısını doğrulama

Databricks Connect için ortamınızın, varsayılan kimlik bilgilerinizin ve işlem bağlantısının doğru ayarlandığını doğrulamak için komutunu databricks-connect test çalıştırın:

databricks-connect test

Bu komut, Databricks Connect sürümünün Databricks sunucusuz işlem sürümüyle uyumsuz olması gibi kurulumda herhangi bir uyumsuzluk algıladığında sıfır olmayan bir çıkış kodu ve buna karşılık gelen bir hata iletisiyle başarısız olur. Databricks Connect sürüm destek bilgileri için bkz. Databricks Connect sürümleri.

Databricks Connect 14.3 ve sonraki sürümlerde, validateSession() kullanarak ortamınızı da doğrulayabilirsiniz.

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

Databricks Connect'i devre dışı bırakma

Databricks Connect (ve temel alınan Spark Connect) hizmetleri belirli bir kümede devre dışı bırakılabilir.

Databricks Connect hizmetini devre dışı bırakmak için kümede aşağıdaki Spark yapılandırmasını ayarlayın.

spark.databricks.service.server.enabled false