Aracılığıyla paylaş


Öğretici: Sunucusuz işlemde Python kodu çalıştırma

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:

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.

  1. 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>
    
  2. Databricks CLI, Databricks yapılandırma profili olarak girdiğiniz bilgileri kaydetmenizi ister. Önerilen profil adını kabul etmek için basın Enter veya yeni veya mevcut bir profilin adını girin. Databricks, profil adınız olarak kullanılmasını DEFAULT önerir.

  3. 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

  1. 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

  2. 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.

  3. Terminalde aşağıdaki komutu çalıştırarak proje klasörünün kökünde adlı venv proje için bir sanal ortam oluşturun:

    python3.12 -m venv .venv
    
  4. Sanal 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

  1. Projenize yeni bir Python dosyası main.py ekleme

  2. Dosyaya 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ır DEFAULT.

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Aşağıdaki komutu kullanarak kodu çalıştırın:

    python3 main.py
    

    Tablonun 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:

  1. DEFAULT yönergeleri kullanarak adlı bir yapılandırma profili oluşturun.

  2. Dosyayı açmak .databrickscfg iç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
      
  3. serverless_compute_id = auto Profile ekleyinDEFAULT:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Değişiklikleri kaydedin ve düzenleyicinizden çıkın.

  5. 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>