Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu makale Databricks Connect 15.4 LTS ve üzeri için geçerlidir.
Bu makalede IDE'nizde proje oluşturma, sanal ortamınızı ayarlama, Python için Databricks Connect'i yükleme ve Databricks çalışma alanınızda sunucusuz işlemde kod çalıştırma işlemleri açıklanmaktadır.
Bu öğreticide Python 3.12 ve Databricks Connect 17.3 LTS kullanılır. Databricks Connect'in Python'ın diğer sürümlerini kullanmak için uyumlu olmaları gerekir. Bkz. sürüm destek matrisi.
Gereksinimler
Bu öğreticiyi tamamlamak için aşağıdaki gereksinimlerin karşılanması gerekir:
- Çalışma alanınız, yerel ortamınız ve işleminiz Python için Databricks Connect gereksinimlerini karşılar. Bkz. Databricks Connect kullanım gereksinimleri.
- Sunucusuz işlem çalışma alanınızda etkinleştirilir. Bkz. Sunucusuz bilişime bağlanma.
- Python 3.12 yüklü.
- Visual Studio Code gibi yüklü bir IDE'niz var.
- Yerel makinenizde Databricks CLI yüklüdür. Bkz. Databricks CLI'yı yükleme veya güncelleştirme.
1. Adım: Databricks kimlik doğrulamayı yapılandırma
Bu öğreticide Databricks çalışma alanınızda kimlik doğrulaması için Databricks OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması ve Databricks yapılandırma profili kullanılır.
Her hedef çalışma alanı için aşağıdaki komutu çalıştırarak yerel olarak OAuth belirteci yönetimini başlatmak için Databricks CLI'sini kullanın. Aşağıdaki komutta değerini Databricks
<workspace-url>değiştirin; örneğinhttps://dbc-a1b2345c-d6e7.cloud.databricks.com.databricks auth login --host <workspace-url>Databricks CLI, Databricks yapılandırma profili olarak girdiğiniz bilgileri kaydetmenizi ister. Önerilen profil adını kabul etmek için basın
Enterveya yeni veya mevcut bir profilin adını girin. Databricks, profil adınız olarak kullanılmasınıDEFAULTönerir.Web tarayıcınızda, Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri tamamlayın.
2. Adım: Yeni bir Python sanal ortamı oluşturma
Proje klasörünüzü oluşturun ve IDE'nizde açın. Örneğin, Visual Studio Code ana menüsünde Dosya>Klasör>Aç Aç'a tıklayın
Proje klasörü kökünde bir terminal penceresi açın. Örneğin, Visual Studio Code ana menüsünde Terminali Görüntüle'ye> tıklayın.
Terminalde aşağıdaki komutu çalıştırarak proje klasörünün kökünde adlı
venvproje için bir sanal ortam oluşturun:python3.12 -m venv .venvSanal ortamınızı etkinleştirin:
# Linux/Mac source .venv/bin/activate# Windows .venv\Scripts\activate
3. Adım: Databricks Connect'i yükleme
Databricks Connect'i yükleyin. Databricks Connect'in en son yayımlanan sürümleri hakkında bilgi için bkz. Databricks Connect sürüm notları.
pip install "databricks-connect==17.3.*"
4. Adım: Kod ekleme ve çalıştırma
Projenize yeni bir Python dosyası
main.pyeklemeDosyaya aşağıdaki kodu girin, yer tutucuyu
<profile-name>1. Adımdaki yapılandırma profilinizin adıyla değiştirin ve dosyayı kaydedin. Varsayılan yapılandırma profili adıdırDEFAULT.from databricks.connect import DatabricksSession spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)Aşağıdaki komutu kullanarak kodu çalıştırın:
python3 main.pyTablonun beş satırı döndürülür:
+--------------------+---------------------+-------------+-----------+---------+-----------+ |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip| +--------------------+---------------------+-------------+-----------+----------+-----------+ | 2016-02-16 22:40:45| 2016-02-16 22:59:25| 5.35| 18.5| 10003| 11238| | 2016-02-05 16:06:44| 2016-02-05 16:26:03| 6.5| 21.5| 10282| 10001| | 2016-02-08 07:39:25| 2016-02-08 07:44:14| 0.9| 5.5| 10119| 10003| | 2016-02-29 22:25:33| 2016-02-29 22:38:09| 3.5| 13.5| 10001| 11222| | 2016-02-03 17:21:02| 2016-02-03 17:23:24| 0.3| 3.5| 10028| 10028| +--------------------+---------------------+-------------+-----------+----------+-----------+
IDE'nizden Databricks Connect kullanarak Databricks sunucusuz işlemde ilk sorgunuzu başarıyla çalıştırmışsınız.
5. Adım: Kodunuzu üretime hazır hale getirme
Üretim senaryoları için Spark oturum oluşturucusunda işlem belirtimlerini kullanmaktan kaçınmak önemlidir. Örneğin, kodunuzu klasik bir kümeye dağıtırsanız: Standard veya Dedicated Spark oturum oluşturucunuzda API'yi kullanarak .serverless() , klasik küme istemci olarak kullanılarak yeni bir sunucusuz Spark oturumu oluşturulur.
Kodunuzu esnek ve üretime hazır hale getirmek için Spark oturumu herhangi bir parametre içermemelidir.
spark = DatabricksSession.builder.getOrCreate()
Ancak bu kod Databricks'te çalıştırıldığında Databricks işleminin varsayılan genel Spark oturumu kullanılır.
IDE'nizde sunucusuz işlemi etkinleştirmek için parametresi belirtilmediğinde tarafından DatabricksSession.builder seçilen DEFAULT yapılandırma profilini kullanın:
DEFAULTyönergeleri kullanarak adlı bir yapılandırma profili oluşturun.Dosyayı açmak
.databrickscfgiçin bir metin düzenleyicisi kullanın. Bu dosya şu konumlarda bulunur:Unix, Linux veya macOS'ta kullanıcı giriş klasörünüz
$HOME:~/.databrickscfgveya%USERPROFILE%Windows'ta (kullanıcı giriş klasörünüz). Örneğin, macOS için:nano ~/.databrickscfg
serverless_compute_id = autoProfile ekleyinDEFAULT:[DEFAULT] host = https://my-workspace.cloud.databricks.com auth_type = databricks-cli serverless_compute_id = autoDeğişiklikleri kaydedin ve düzenleyicinizden çıkın.
Kodunuzu genel bir Spark oturumu kullanacak şekilde değiştirin ve çalıştırın:
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)python3 main.py
DEFAULT yapılandırma profilini kullanarak IDE'nizden Databricks Connect kullanarak databricks sunucusuz işlemde üretime hazır kodunuzu başarıyla çalıştırmışsınız.
Tip
Belirli bir Databricks işlem bağlantısını ayarlamak için ortam değişkenlerini de kullanabilirsiniz:
- Sunucusuz:
DATABRICKS_SERVERLESS_COMPUTE_ID=auto - Klasik:
DATABRICKS_CLUSTER_ID=<your_cluster_id>