Aracılığıyla paylaş


El ile paket oluşturma

Bu öğreticide sıfırdan bir Databricks Varlık Paketi oluşturacaksınız. Bu basit paket iki not defterinden ve bu not defterlerini çalıştırmak için bir Azure Databricks işinin tanımından oluşur. Ardından Azure Databricks çalışma alanınızda işi doğrular, dağıtır ve çalıştırırsınız. Bu adımlar , Lakeflow İşleri ile ilk iş akışınızı oluşturma başlıklı hızlı başlangıcı otomatikleştirir.

Gereksinimler

  • Databricks CLI sürüm 0.218.0 veya üzeri. Yüklü Databricks CLI sürümünüzü denetlemek için komutunu databricks -vçalıştırın. Databricks CLI'yi yüklemek veya güncellemek için bkz. Databricks CLI yükleme veya güncelleştirme.
  • Databricks CLI için kimlik doğrulaması yapılandırıldı. U2M kimlik doğrulaması, bu adımları gerçek zamanlı olarak denemek için uygundur. Bkz . Databricks CLI için kimlik doğrulaması.
  • Uzak Databricks çalışma alanında çalışma alanı dosyaları etkinleştirilmelidir. Bkz . Çalışma alanı dosyaları nedir?.

1. Adım: Paketi oluşturma

Paket, dağıtmak istediğiniz yapıtları ve çalıştırmak istediğiniz kaynakların ayarlarını içerir.

  1. Geliştirme makinenizde boş bir dizin oluşturun veya tanımlayın.
  2. Terminalinizde boş dizine geçin veya IDE'nizde açın.

İpucu

Git sağlayıcısından kopyalanmış bir depo içeren bir dizin de kullanabilirsiniz. Bu sayede paketinizi dış sürüm denetimiyle yönetebilir ve projenizde diğer geliştiriciler ve BT uzmanlarıyla daha kolay işbirliği yapabilirsiniz.

Bu tanıtım için bir repository kopyalamayı seçerseniz, Databricks repository'nin boş olmasını veya içinde yalnızca README ve .gitignore gibi temel dosyaların olmasını önerir. Aksi takdirde, depodaki önceden var olan dosyalar, Azure Databricks çalışma alanınıza gereksiz yere eşitlenebilir.

2. Adım: Projeye not defterleri ekleme

Bu adımda, projenize iki not defteri eklersiniz. İlk not defteri, 2007'den bu yana New York Eyalet Sağlık Bakanlığı'nın genel veri kaynaklarından popüler bebek adlarının listesini alır. Bakanlığın web sitesinde İsme Göre Eğilim: 2007'den itibaren Bebek Adları'nı İnceleyin. İlk not defteri daha sonra bu verileri my-volumeadlı katalogdaki default adlı şemada main adlı Azure Databricks Unity Kataloğu biriminize kaydeder. İkinci not defteri, kaydedilen verileri sorgular ve 2014 için bebek adlarının ad ve cinsiyete göre toplam sayısını görüntüler.

  1. Dizinin kökünden, retrieve-baby-names.py adlı bir dosya olan ilk not defterini oluşturun.

  2. retrieve-baby-names.py dosyasına aşağıdaki kodu ekleyin:

    # Databricks notebook source
    import requests
    
    response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
    
  3. aynı dizinde adlı filter-baby-names.pyikinci not defterini oluşturun.

  4. filter-baby-names.py dosyasına aşağıdaki kodu ekleyin:

    # Databricks notebook source
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

3. Adım: Projeye paket yapılandırma şeması dosyası ekleme

YAML dosyalarını ve JSON şema dosyalarını destekleyen Visual Studio Code, PyCharm Professional veya IntelliJ IDEA Ultimate gibi bir IDE kullanıyorsanız, IDE'nizi yalnızca paket yapılandırma şeması dosyasını oluşturmakla kalmaz, projenizin paket yapılandırma dosyası söz dizimini ve biçimlendirmesini denetlemek için de kullanabilirsiniz.

Visual Studio Code

  1. Örneğin Visual Studio Code Market'ten YAML uzantısını yükleyerek Visual Studio Code'a YAML dil sunucusu desteği ekleyin.

  2. Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak bundle schema komutunu çalıştırın ve çıkışı bir JSON dosyasına yeniden yönlendirin. Örneğin, geçerli dizinde aşağıdaki gibi bundle_config_schema.json adlı bir dosya oluşturun:

    databricks bundle schema > bundle_config_schema.json
    
  3. 4. Adımda, paket yapılandırma dosyanızı belirtilen JSON şema dosyasıyla ilişkilendiren paket yapılandırma dosyanızın başına aşağıdaki açıklamayı ekleyebilirsiniz:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Not

    Önceki yorumda, Databricks Varlık Paketi yapılandırma JSON şema dosyanız farklı bir yoldaysa, bundle_config_schema.json yerine şema dosyanızın tam yolunu yazın.

PyCharm Professional

  1. Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak bundle schema komutunu çalıştırın ve çıkışı bir JSON dosyasına yeniden yönlendirin. Örneğin, geçerli dizinde aşağıdaki gibi bundle_config_schema.json adlı bir dosya oluşturun:

    databricks bundle schema > bundle_config_schema.json
    
  2. PyCharm'ı paket yapılandırması JSON şema dosyasını tanıyacak şekilde ayarlayın ve ardından özel bir JSON şeması yapılandırınyönergelerini izleyerek JSON şema eşlemesini tamamlayın.

  3. 4. Adımda PyCharm kullanarak bir paket yapılandırma dosyası oluşturacak veya açacaksınız. Kural gereği, bu dosya olarak adlandırılır databricks.yml.

IntelliJ IDEA Ultimate

  1. Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak bundle schema komutunu çalıştırın ve çıkışı bir JSON dosyasına yeniden yönlendirin. Örneğin, geçerli dizinde aşağıdaki gibi bundle_config_schema.json adlı bir dosya oluşturun:

    databricks bundle schema > bundle_config_schema.json
    
  2. IntelliJ IDEA'yı paket yapılandırması JSON şema dosyasını tanıyacak şekilde yapılandırın ve ardından özel JSON şeması yapılandırmayönergeleri izleyerek JSON şema eşlemesini tamamlayın.

  3. 4. Adımda, paket yapılandırma dosyası oluşturmak veya açmak için IntelliJ IDEA kullanacaksınız. Kural gereği, bu dosya olarak adlandırılır databricks.yml.

4. Adım: Projeye paket yapılandırma dosyası ekleme

Bu adımda, iki not defterinin nasıl dağıtılacağını ve çalıştırılacağını tanımlarsınız. Bu tanıtımda, Azure Databricks işi kullanarak önce ilk not defterini, sonra da ikinci not defterini çalıştırmak istiyorsunuz. İlk not defteri verileri kaydettiğinden ve ikinci not defteri kaydedilen verileri sorguladığı için, ikinci not defteri başlamadan önce ilk not defterinin çalışmasının bitmesini istersiniz. Bu hedefleri projenizdeki bir paket yapılandırma dosyasında modelleyebilirsiniz.

  1. Dizinin kökünden, databricks.yml adlı bir dosya olarak paket yapılandırma dosyasını oluşturun.
  2. Aşağıdaki kodu databricks.yml dosyasına ekleyin ve <workspace-url> yerine, örnek olarak , kendi çalışma alanı başına URL'nizi https://adb-1234567890123456.7.azuredatabricks.net ile değiştirin. Bu URL, dosyanızdaki .databrickscfg url ile eşleşmelidir:

İpucu

ile başlayan # yaml-language-serverilk satır, yalnızca IDE'niz destekliyorsa gereklidir. Ayrıntılar için bkz. Önceki 3. adım.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job:
      name: retrieve-filter-baby-names-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 12.2.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1
      tasks:
        - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./filter-baby-names.py

targets:
  development:
    workspace:
      host: <workspace-url>

İşleri özelleştirmek için, bir iş bildirimindeki eşlemeler, REST API başvurusunda POST /api/2.1/jobs/create içinde belgelendiği gibi iş oluşturma işleminin YAML biçiminde ifade edilen istek yüküne karşılık gelir.

İpucu

Hedef ayarlarla geçersiz kılma başlığında açıklanan teknikleri kullanarak paketlerde yeni iş kümelerinin ayarlarını tanımlayabilir, birleştirebilir ve geçersiz kılabilirsiniz.

5. Adım: Projenin paket yapılandırma dosyasını doğrulama

Bu adımda paket yapılandırmasının geçerli olup olmadığını denetlersiniz.

  1. Komutu çalıştırmak bundle validate için Databricks CLI'yi aşağıdaki gibi kullanın:

    databricks bundle validate
    
  2. Paket yapılandırmasının özeti döndürülürse doğrulama başarılı olur. Herhangi bir hata döndürülürse, hataları düzeltin ve bu adımı yineleyin.

Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için bu adımı yinelemelisiniz.

6. Adım: Yerel projeyi uzak çalışma alanına dağıtma

Bu adımda, iki yerel not defterini uzak Azure Databricks çalışma alanınıza dağıtacak ve çalışma alanınızda Azure Databricks işini oluşturacaksınız.

  1. Komutu aşağıdaki gibi çalıştırmak bundle deploy için Databricks CLI'yi kullanın:

    databricks bundle deploy -t development
    
  2. İki yerel not defterinin dağıtılıp dağıtılmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda Çalışma Alanı'na tıklayın.

  3. Users><your-username>> .bundle > baby-names > geliştirme > dosyaları klasörüne girin. İki not defteri bu klasörde olmalıdır.

  4. İşin oluşturulup oluşturulmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda İşler ve İşlem Hatları'na tıklayın.

  5. İsteğe bağlı olarak İşler ve Bana ait filtrelerini seçin.

  6. Get-filter-baby-names-job öğesine tıklayın.

  7. Görevler sekmesine tıklayın. İki görev olmalıdır: retrieve-baby-names-task ve filter-baby-names-task.

Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için 6-7 arası adımları yineleyip projeyi yeniden dağıtmanız gerekir.

7. Adım: Dağıtılan projeyi çalıştırma

Bu adımda, çalışma alanınızda Azure Databricks işini çalıştırırsınız.

  1. Komutu çalıştırmak bundle run için Databricks CLI'yi aşağıdaki gibi kullanın:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Terminalinizde görünen değerini Run URL kopyalayın ve bu değeri web tarayıcınıza yapıştırarak Azure Databricks çalışma alanınızı açın.

  3. Azure Databricks çalışma alanınızda, iki görev başarıyla tamamlanıp yeşil başlık çubukları gösterildikten sonra, sorgu sonuçlarını görmek için filter-baby-names-task görevine tıklayın.

Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek, projeyi yeniden dağıtmak ve yeniden dağıtılan projeyi çalıştırmak için 6-8 arası adımları yinelemelisiniz.

8. Adım: Temizleme

Bu adımda, dağıtılan iki not defterini ve işi çalışma alanınızdan silersiniz.

  1. Komutu çalıştırmak bundle destroy için Databricks CLI'yi aşağıdaki gibi kullanın:

    databricks bundle destroy
    
  2. İş silme isteğini onaylayın: Kaynakları kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın y ve tuşuna basın Enter.

  3. Not defterlerini silme isteğini onaylayın: Önceden dağıtılan klasörü ve tüm dosyalarını kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın y ve tuşuna basın Enter.

komutu çalıştırıldığında bundle destroy yalnızca dağıtılan iş ve dağıtılan iki not defterini içeren klasör silinir. Bu komut, ilk not defterinin babynames.csv oluşturduğu dosya gibi herhangi bir yan efekti silmez. Dosyayı silmek babybnames.csv için aşağıdakileri yapın:

  1. Azure Databricks çalışma alanınızın kenar çubuğunda Katalog'e tıklayın.
  2. DBFS'ye Gözat'a tıklayın.
  3. Dosya Deposu klasörüne tıklayın.
  4. Babynames.csv dosyasının yanındaki açılır ok işaretine tıklayın ve Sil seçeneğine tıklayın.
  5. Paketi geliştirme makinenizden de silmek istiyorsanız, artık 1. Adım'dan yerel dizini silebilirsiniz.