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
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ınshow
.# Is PySpark already installed? pip3 show pyspark # Uninstall PySpark pip3 uninstall pyspark
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.Y
belirtmekdatabricks-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
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ınshow
.# Is PySpark already installed? poetry show pyspark # Uninstall PySpark poetry remove pyspark
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.3
belirtmekdatabricks-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:
- Azure Databricks çalışma alanı örneği adı. Bu, ompute'nizin Sunucu Ana Bilgisayar Adı değeridir. Bkz. Azure Databricks işlem kaynağı için bağlantı ayrıntılarını alma.
- Kullanmak istediğiniz Databricks kimlik doğrulama türü için gerekli olan diğer özellikler.
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ı.
- DatabricksSession sınıfının remote() yöntemi.
- Databricks yapılandırma profili
- DATABRICKS_CONFIG_PROFILE ortam değişkeni
- Her yapılandırma özelliği için bir ortam değişkeni
- 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
:
host
içindekiDatabricksSession.builder.remote()
,token
vecluster_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:
- Azure Databricks kişisel erişim belirteci kimlik doğrulaması için:
host
vetoken
. - OAuth makineden makineye (M2M) kimlik doğrulaması (desteklenen yerlerde):
host
,client_id
veclient_secret
. - OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması için (desteklenen yerlerde):
host
. - Microsoft Entra Id (eski adıYla Azure Active Directory) hizmet sorumlusu kimlik doğrulaması için:
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
ve büyük olasılıklaazure_workspace_resource_id
. - Azure CLI kimlik doğrulaması için:
host
. - Azure yönetilen kimlikleri kimlik doğrulaması için (burada desteklenir):
host
,azure_use_msi
,azure_client_id
ve büyük olasılıklaazure_workspace_resource_id
.
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:
- Azure Databricks kişisel erişim belirteci kimlik doğrulaması için:
host
vetoken
. - OAuth makineden makineye (M2M) kimlik doğrulaması (desteklenen yerlerde):
host
,client_id
veclient_secret
. - OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması için (desteklenen yerlerde):
host
. - Microsoft Entra Id (eski adıYla Azure Active Directory) hizmet sorumlusu kimlik doğrulaması için:
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
ve büyük olasılıklaazure_workspace_resource_id
. - Azure CLI kimlik doğrulaması için:
host
. - Azure yönetilen kimlikleri kimlik doğrulaması için (burada desteklenir):
host
,azure_use_msi
,azure_client_id
ve büyük olasılıklaazure_workspace_resource_id
.
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:
- Azure Databricks kişisel erişim belirteci kimlik doğrulaması için:
DATABRICKS_HOST
veDATABRICKS_TOKEN
. - OAuth makineden makineye (M2M) kimlik doğrulaması (desteklenen yerlerde):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
veDATABRICKS_CLIENT_SECRET
. - OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması için (desteklenen yerlerde):
DATABRICKS_HOST
. - Microsoft Entra Id (eski adıYla Azure Active Directory) hizmet sorumlusu kimlik doğrulaması için:
DATABRICKS_HOST
,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
ve büyük olasılıklaDATABRICKS_AZURE_RESOURCE_ID
. - Azure CLI kimlik doğrulaması için:
DATABRICKS_HOST
. - Azure yönetilen kimlikleri kimlik doğrulaması için (burada desteklenir):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
ve büyük olasılıklaDATABRICKS_AZURE_RESOURCE_ID
.
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:
- Azure Databricks kişisel erişim belirteci kimlik doğrulaması için:
host
vetoken
. - OAuth makineden makineye (M2M) kimlik doğrulaması (desteklenen yerlerde):
host
,client_id
veclient_secret
. - OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması için (desteklenen yerlerde):
host
. - Microsoft Entra Id (eski adıYla Azure Active Directory) hizmet sorumlusu kimlik doğrulaması için:
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
ve büyük olasılıklaazure_workspace_resource_id
. - Azure CLI kimlik doğrulaması için:
host
. - Azure yönetilen kimlikleri kimlik doğrulaması için (burada desteklenir):
host
,azure_use_msi
,azure_client_id
ve büyük olasılıklaazure_workspace_resource_id
.
Bu yapılandırma profilini olarak DEFAULT
adlandı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:
- Python için Databricks Connect sınırlamalarının tümü
- Sunucusuz işlem sınırlamalarının tümü
- UDF'ler için yalnızca sunucusuz işlem ortamına dahil edilen Python bağımlılıkları kullanılabilir. Bkz. Sistem ortamı. Ek bağımlılıklar yüklenemez.
- Özel modüllere sahip UDF'ler desteklenmez.
Sunucusuz işlem bağlantısını aşağıdaki yollardan biriyle yapılandırabilirsiniz:
Yerel ortam değişkenini
DATABRICKS_SERVERLESS_COMPUTE_ID
olarakauto
ayarlayın. Bu ortam değişkeni ayarlanırsa, Databricks Connect değerinicluster_id
yoksayar.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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin