Aracılığıyla paylaş


Python için Databricks Connect'i yükleme

Not

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

Bu makalede Python için Databricks Connect'in nasıl yükleneceği açıklanmaktadır. Bkz. Databricks Connect nedir?. Bu makalenin Scala sürümü için bkz . Scala için Databricks Connect'i yükleme.

Gereksinimler

Python için Databricks Connect'i yüklemek için aşağıdaki gereksinimlerin karşılanması gerekir:

  • Sunucusuz işlem bağlantısı kuruyorsanız, çalışma alanınızın sunucusuz işlem gereksinimlerini karşılaması gerekir.

  • Bir kümeye bağlanıyorsanız, hedef kümenizin Databricks Runtime sürüm gereksinimlerini içeren küme yapılandırma gereksinimlerini karşılaması gerekir.

  • Geliştirme makinenizde Python 3 yüklü olmalıdır ve geliştirme makinenizde yüklü olan ikincil Python sürümü aşağıdaki tabloda yer alan sürüm gereksinimlerini karşılamalıdır.

    Databricks Connect sürümü İşlem türü Uyumlu Python sürümü
    15.3 Küme 3.11
    15.2 Küme 3.11
    15.1 Küme 3.11
    15.1 Sunucusuz 3,10
    13,3 LTS - 14,3 LTS Küme 3,10
  • PySpark UDF'lerini kullanmak istiyorsanız, geliştirme makinenizin yüklü Python ikincil sürümü, kümede veya sunucusuz işlemde yüklü Databricks Runtime ile birlikte gelen Python'ın ikincil sürümüyle eşleşmelidir. Kümenizin ikincil Python sürümünü bulmak için, kümeniz veya sunucusuz işlem için Databricks Runtime sürüm notlarının Sistem ortamı bölümüne bakın. Bkz . Databricks Runtime sürüm notları sürümleri, uyumluluk ve Sunucusuz işlem sürüm notları.

Python sanal ortamını etkinleştirme

Databricks, Databricks Connect ile kullandığınız her Python sürümü için etkinleştirilmiş bir Python sanal ortamına sahip olduğunuzu kesinlikle önerir. Python sanal ortamları, Python ve Databricks Connect'in doğru sürümlerini birlikte kullandığınızdan emin olmanıza yardımcı olur. Bu araçlar ve bunları etkinleştirme hakkında daha fazla bilgi için bkz . venv veya Şiir.

Databricks Connect istemcisini yükleme

Bu bölümde Venv veya Poetry ile Databricks Connect istemcisinin nasıl yükleneceği açıklanmaktadır.

Not

Visual Studio Code için Databricks uzantısı zaten yüklüyse, Visual Studio Code için Databricks uzantısı Databricks Runtime 13.3 LTS ve üzeri için Yerleşik Databricks Connect desteğine zaten sahip olduğundan bu kurulum yönergelerini izlemeniz gerekmez. Visual Studio Code için Databricks uzantısı için Databricks Connect'i kullanarak kodda hata ayıklamaya atlayın.

Venv ile Databricks Connect istemcisini yükleme

  1. Sanal ortamınız etkinleştirildiğinde, pyspark zaten yüklüyse komutunu çalıştırarak uninstall kaldırın. Paketin PySpark ile çakışması databricks-connect nedeniyle bu gereklidir. Ayrıntılar için bkz . Çakışan PySpark yüklemeleri. PySpark'ın zaten yüklü olup olmadığını denetlemek için komutunu çalıştırın show .

    # Is PySpark already installed?
    pip3 show pyspark
    
    # Uninstall PySpark
    pip3 uninstall pyspark
    
  2. Sanal ortamınız hala etkinken komutunu çalıştırarak Databricks Connect istemcisini install yükleyin. --upgrade Mevcut istemci yüklemelerini belirtilen sürüme yükseltmek için seçeneğini kullanın.

    pip3 install --upgrade "databricks-connect==14.3.*"  # Or X.Y.* to match your cluster version.
    

    Not

    Databricks, en son paketin yüklendiğinden emin olmak için yerine databricks-connect=X.Ybelirtmek databricks-connect==X.Y.* üzere "nokta-yıldız işareti" gösterimini eklemenizi önerir. Bu bir gereksinim olmasa da, bu küme için desteklenen en son özellikleri kullanabilmenize yardımcı olur.

Bağlantı özelliklerini yapılandırma'ya atlayın.

Şiir ile Databricks Connect istemcisini yükleme

  1. Sanal ortamınız etkinleştirildiğinde, pyspark zaten yüklüyse komutunu çalıştırarak remove kaldırın. Paketin PySpark ile çakışması databricks-connect nedeniyle bu gereklidir. Ayrıntılar için bkz . Çakışan PySpark yüklemeleri. PySpark'ın zaten yüklü olup olmadığını denetlemek için komutunu çalıştırın show .

    # Is PySpark already installed?
    poetry show pyspark
    
    # Uninstall PySpark
    poetry remove pyspark
    
  2. Sanal ortamınız hala etkinken komutunu çalıştırarak Databricks Connect istemcisini add yükleyin.

    poetry add databricks-connect@~14.3  # Or X.Y to match your cluster version.
    

    Not

    Databricks, en son paketin yüklendiğinden emin olmak için yerine databricks-connect==14.3belirtmek databricks-connect@~14.3 üzere "at-tilde" gösterimini kullanmanızı önerir. Bu bir gereksinim olmasa da, bu küme için desteklenen en son özellikleri kullanabilmenize yardımcı olur.

Bağlantı özelliklerini yapılandırma

Bu bölümde, Databricks Connect ile Azure Databricks kümeniz veya sunucusuz işlem arasında bağlantı kurmak için özellikleri yapılandıracaksınız. Bu bağlantı şunları içerir:

Not

  • OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması , Python 0.19.0 ve üzeri için Databricks SDK'sı üzerinde desteklenir. OAuth U2M kimlik doğrulamasını kullanmak için kod projenizin Python için Databricks SDK'sının yüklü sürümünü 0.19.0 veya üzeri bir sürüme güncelleştirmeniz gerekebilir. Bkz . Python için Databricks SDK'sını kullanmaya başlama.

    OAuth U2M kimlik doğrulaması için, Python kodunuzu çalıştırmadan önce kimlik doğrulaması yapmak için Databricks CLI'yi kullanmanız gerekir. Öğretici'ye bakın.

  • OAuth makineden makineye (M2M) kimlik doğrulaması OAuth makineden makineye (M2M) kimlik doğrulaması, Python 0.18.0 ve üzeri için Databricks SDK'sı üzerinde desteklenir. OAuth M2M kimlik doğrulamasını kullanmak için kod projenizin Python için Databricks SDK'sının yüklü sürümünü 0.18.0 veya üzeri bir sürüme güncelleştirmeniz gerekebilir. Bkz . Python için Databricks SDK'sını kullanmaya başlama.

  • Python için Databricks SDK'sı henüz Azure yönetilen kimlikleri kimlik doğrulamasını uygulamadı.

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

Bir kümeye bağlantı yapılandırmak için kümenizin kimliği gerekir. Küme kimliğini URL'den alabilirsiniz. Bkz. Küme URL'si ve Kimliği.

Kümenize bağlantıyı aşağıdaki yollardan biriyle yapılandırabilirsiniz. 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 . Python için 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 DatabricksSession remote() yöntemi

Yalnızca Azure Databricks kişisel erişim belirteci kimlik doğrulaması 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ı aşağıdaki gibi çeşitli yollarla başlatabilirsiniz DatabricksSession :

  • hostiçindeki DatabricksSession.builder.remote(), tokenve cluster_id alanlarını ayarlayın.
  • Databricks SDK'sının sınıfını Config kullanın.
  • Alanıyla cluster_id birlikte bir Databricks yapılandırma profili belirtin.
  • içinde Spark Connect bağlantı dizesi DatabricksSession.builder.remote()ayarlayın.

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 Azure KeyVault gibi başka bir yapılandırma deposundan gerekli özellikleri almak için önerilen retrieve_* işlevlerin bazı uygulamalarını sağladığınız varsayılır.

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

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

Databricks yapılandırma profili

Bu seçenek için, kullanmak istediğiniz Databricks kimlik doğrulama türü için gerekli olan alanı cluster_id ve diğer alanları içeren bir Azure Databricks yapılandırma 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 sınıfı aracılığıyla bu yapılandırma profilinin Config adını ayarlayın.

Aşağıdaki gibi birkaç şekilde 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:

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

Ortam DATABRICKS_CONFIG_PROFILE değişkeni

Bu seçenek için, kullanmak istediğiniz Databricks kimlik doğrulama türü için gerekli olan alanı cluster_id ve diğer alanları içeren bir Azure Databricks yapılandırma 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 sınıfını DatabricksSession aşağıdaki gibi başlatın:

from databricks.connect import DatabricksSession

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ü için gereken ortam değişkenini ve diğer ortam değişkenlerini ayarlayınDATABRICKS_CLUSTER_ID.

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

Ardından sınıfını DatabricksSession aşağıdaki gibi başlatın:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Adlı bir Databricks yapılandırma profili DEFAULT

Bu seçenek için, kullanmak istediğiniz Databricks kimlik doğrulama türü için gerekli olan alanı cluster_id ve diğer alanları içeren bir Azure Databricks yapılandırma 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 sınıfını DatabricksSession aşağıdaki gibi başlatın:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

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

Önemli

Bu özellik Genel Önizlemededir.

Databricks Connect sunucusuz işlemle bağlanmayı destekler. Bu özelliği kullanmak için sunucusuz bağlantı gereksinimleri karşılanmalıdır. Bkz . Gereksinimler.

Önemli

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

Sunucusuz işlem bağlantısını aşağıdaki yollardan biriyle 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 Databricks Connect Python kodunuzdan bu profile başvurun.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Alternatif olarak Databricks Connect Python kodunuzu aşağıdaki gibi güncelleştirebilirsiniz:

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

Not

Sunucusuz işlem oturumu 10 dakika etkinlik dışı kalma süresinden sonra zaman aşımına uğradı. Bundan sonra, sunucusuz işleme bağlanmak için yeni bir Spark oturumu oluşturmak için istemci tarafında Python işleminin yeniden başlatılması gerekir.

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

Ortamınızı, varsayılan kimlik bilgilerini ve işlem bağlantısının Databricks Connect için doğru şekilde ayarlandığını doğrulamak için, sıfır olmayan bir çıkış kodu ve kurulumda herhangi bir uyumsuzluk algıladığında buna karşılık gelen bir hata iletisiyle başarısız olan komutunu çalıştırın databricks-connect test .

databricks-connect test

Alternatif olarak, Python için Databricks Connect'in parçası olarak dahil edilen kabuğu kullanabilir pyspark ve basit bir komut çalıştırabilirsiniz. PySpark kabuğu hakkında daha fazla bilgi için bkz . Pyspark kabuğu.