Bagikan melalui


Membuat bundel secara manual

Dalam tutorial ini, Anda membuat Bundel Aset Databricks dari awal. Bundel sederhana ini terdiri dari dua notebook dan definisi pekerjaan Azure Databricks untuk menjalankan notebook ini. Anda kemudian memvalidasi, menyebarkan, dan menjalankan pekerjaan di ruang kerja Azure Databricks Anda. Langkah-langkah ini mengotomatiskan panduan memulai cepat berjudul Membuat alur kerja pertama Anda dengan Lakeflow Jobs.

Persyaratan

  • Databricks CLI versi 0.218.0 atau lebih tinggi. Untuk memeriksa versi Databricks CLI yang diinstal, jalankan perintah databricks -v. Untuk menginstal Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI.
  • Autentikasi dikonfigurasi untuk Databricks CLI. Autentikasi U2M sesuai untuk mencoba langkah-langkah ini secara real time. Lihat Autentikasi untuk Databricks CLI.
  • Ruang kerja jarak jauh Databricks harus memiliki file ruang kerja yang diaktifkan. Lihat Apa itu file ruang kerja?.

Langkah 1: Buat bundel

Bundel berisi artefak yang ingin Anda sebarkan dan pengaturan untuk sumber daya yang ingin Anda jalankan.

  1. Buat atau identifikasi direktori kosong di komputer pengembangan Anda.
  2. Beralih ke direktori kosong di terminal Anda atau buka di IDE Anda.

Kiat

Anda juga dapat menggunakan direktori yang berisi repositori yang dikloning dari penyedia Git. Ini memungkinkan Anda mengelola bundel dengan kontrol versi eksternal dan lebih mudah berkolaborasi dengan pengembang lain dan profesional TI pada proyek Anda.

Jika Anda memilih untuk mengkloning repositori untuk demo ini, Databricks merekomendasikan agar repositori kosong atau hanya memiliki file dasar di dalamnya seperti README dan .gitignore. Jika tidak, file apa pun yang sudah ada sebelumnya di repositori mungkin tidak perlu disinkronkan ke ruang kerja Azure Databricks Anda.

Langkah 2: Menambahkan buku catatan ke proyek

Dalam langkah ini, Anda menambahkan dua buku catatan ke proyek Anda. Notebook pertama mendapatkan daftar nama bayi yang sedang tren sejak 2007 dari sumber data publik Departemen Kesehatan Negara Bagian New York. Lihat Nama Bayi: Tren berdasarkan Nama: Mulai 2007 di situs web departemen. Notebook pertama kemudian menyimpan data ini ke volume Azure Databricks Unity Catalog Anda yang dinamai my-volume dalam skema bernama default dalam katalog bernama main. Notebook kedua mengkueri data yang disimpan dan menampilkan jumlah agregat nama bayi berdasarkan nama depan dan jenis kelamin untuk 2014.

  1. Dari akar direktori, buat buku catatan pertama, file bernama retrieve-baby-names.py.

  2. Tambahkan kode berikut ke file retrieve-baby-names.py:

    # 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. Buat buku catatan kedua, file bernama filter-baby-names.py, di direktori yang sama.

  4. Tambahkan kode berikut ke file filter-baby-names.py:

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

Langkah 3: Menambahkan file skema konfigurasi bundel ke proyek

Jika Anda menggunakan IDE seperti Visual Studio Code, PyCharm Professional, atau IntelliJ IDEA Ultimate yang mendukung file YAML dan file skema JSON, Anda dapat menggunakan IDE Anda untuk tidak hanya membuat file skema konfigurasi bundel tetapi juga untuk memeriksa sintaks dan pemformatan file konfigurasi bundel proyek Anda.

Visual Studio Code

  1. Tambahkan dukungan server bahasa YAML ke Visual Studio Code, misalnya dengan menginstal ekstensi YAML dari Marketplace Visual Studio Code.

  2. Buat file skema JSON konfigurasi Bundel Aset Databricks dengan menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json di direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  3. Di Langkah 4 Anda akan menambahkan komentar berikut ke awal file konfigurasi bundel Anda, yang mengaitkan file konfigurasi bundel Anda dengan file skema JSON yang ditentukan:

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

    Catatan

    Dalam komentar sebelumnya, jika file skema JSON konfigurasi Paket Aset Databricks Anda berada di jalur yang berbeda, ganti bundle_config_schema.json dengan jalur lengkap ke file skema Anda.

PyCharm Professional

  1. Buat file skema JSON konfigurasi Bundel Aset Databricks menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json di direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurasikan PyCharm untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.

  3. Di Langkah 4 Anda akan menggunakan PyCharm untuk membuat atau membuka file konfigurasi bundel. Menurut konvensi, file ini diberi nama databricks.yml.

IntelliJ IDEA Ultimate

  1. Buat file skema JSON konfigurasi Bundel Aset Databricks dengan menggunakan Databricks CLI untuk menjalankan bundle schema perintah dan mengalihkan output ke file JSON. Misalnya, buat file bernama bundle_config_schema.json di direktori saat ini, sebagai berikut:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurasikan IntelliJ IDEA untuk mengenali file skema JSON konfigurasi bundel, lalu selesaikan pemetaan skema JSON, dengan mengikuti instruksi dalam Mengonfigurasi skema JSON kustom.

  3. Di Langkah 4 Anda akan menggunakan IntelliJ IDEA untuk membuat atau membuka file konfigurasi bundel. Menurut konvensi, file ini diberi nama databricks.yml.

Langkah 4: Menambahkan file konfigurasi bundel ke proyek

Dalam langkah ini, Anda menentukan cara menyebarkan dan menjalankan dua buku catatan. Untuk demo ini, Anda ingin menggunakan pekerjaan Azure Databricks untuk menjalankan buku catatan pertama lalu buku catatan kedua. Karena buku catatan pertama menyimpan data dan buku catatan kedua mengkueri data yang disimpan, Anda ingin buku catatan pertama selesai berjalan sebelum buku catatan kedua dimulai. Anda memodelkan tujuan ini dalam file konfigurasi bundel di proyek Anda.

  1. Dari akar direktori, buat file konfigurasi bundel, file bernama databricks.yml.
  2. Tambahkan kode berikut ke databricks.yml file, ganti <workspace-url> dengan URL per ruang kerja Anda, misalnya https://adb-1234567890123456.7.azuredatabricks.net. URL ini harus cocok dengan yang ada di file Anda .databrickscfg :

Kiat

Baris pertama, dimulai dengan # yaml-language-server, diperlukan hanya jika IDE Anda mendukungnya. Lihat Langkah 3 sebelumnya untuk detailnya.

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

Untuk menyesuaikan tugas, pemetaan dalam deklarasi tugas sesuai dengan payload permintaan, yang dinyatakan dalam format YAML, dari operasi pembuatan tugas sebagaimana didokumentasikan di POST /api/2.1/jobs/create dalam referensi REST API.

Kiat

Anda dapat menentukan, menggabungkan, dan mengambil alih pengaturan untuk kluster pekerjaan baru dalam bundel dengan menggunakan teknik yang dijelaskan dalam Mengambil alih dengan pengaturan target.

Langkah 5: Memvalidasi file konfigurasi bundel proyek

Dalam langkah ini, Anda memeriksa apakah konfigurasi bundel valid.

  1. Gunakan Databricks CLI untuk menjalankan bundle validate perintah, sebagai berikut:

    databricks bundle validate
    
  2. Jika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah ini untuk memeriksa apakah konfigurasi bundel Anda masih valid.

Langkah 6: Menyebarkan proyek lokal ke ruang kerja jarak jauh

Dalam langkah ini, Anda menyebarkan dua notebook lokal ke ruang kerja Azure Databricks jarak jauh dan membuat pekerjaan Azure Databricks di ruang kerja Anda.

  1. Gunakan Databricks CLI untuk menjalankan bundle deploy perintah sebagai berikut:

    databricks bundle deploy -t development
    
  2. Periksa apakah kedua notebook lokal sudah disebarkan: Di bar samping ruang kerja Azure Databricks Anda, klik Ruang Kerja.

  3. Klik ke folder Pengguna><your-username>> .bundel > Nama-bayi > pengembangan > berkas. Dua buku catatan harus berada di folder ini.

  4. Periksa apakah tugas telah dibuat: Di bilah samping ruang kerja Azure Databricks Anda, klik Tugas dan Alur.

  5. Secara opsional, pilih filter Pekerjaan dan Dimiliki oleh saya .

  6. Tekan retrieve-filter-baby-names-job.

  7. Klik tab Tugas . Harus ada dua tugas: retrieve-baby-names-task dan filter-baby-names-task.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 6-7 untuk memeriksa apakah konfigurasi bundel Anda masih valid lalu menyebarkan ulang proyek.

Langkah 7: Jalankan proyek yang telah disebarkan

Dalam langkah ini, Anda menjalankan pekerjaan Azure Databricks di ruang kerja Anda.

  1. Gunakan Databricks CLI untuk menjalankan bundle run perintah, sebagai berikut:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Salin nilai Run URL yang muncul di terminal Anda dan tempelkan nilai ini ke browser web Anda untuk membuka ruang kerja Azure Databricks Anda.

  3. Di ruang kerja Azure Databricks Anda, setelah dua tugas berhasil diselesaikan dan memperlihatkan bilah judul hijau, klik tugas filter-baby-names-task untuk melihat hasil kueri.

Jika Anda membuat perubahan pada bundel setelah langkah ini, Anda harus mengulangi langkah 6-8 untuk memeriksa apakah konfigurasi bundel Anda masih valid, menyebarkan ulang proyek, dan menjalankan proyek yang disebarkan ulang.

Langkah 8: Bersihkan

Dalam langkah ini, Anda menghapus dua buku catatan yang disebarkan dan pekerjaan dari ruang kerja Anda.

  1. Gunakan Databricks CLI untuk menjalankan bundle destroy perintah, sebagai berikut:

    databricks bundle destroy
    
  2. Konfirmasikan permintaan penghapusan pekerjaan: Ketika diminta untuk menghancurkan sumber daya secara permanen, ketik y dan tekan Enter.

  3. Konfirmasikan permintaan penghapusan notebook: Ketika diminta untuk menghancurkan folder yang disebarkan sebelumnya secara permanen dan semua filenya, ketik y dan tekan Enter.

Menjalankan perintah bundle destroy hanya menghapus pekerjaan yang telah disebarkan dan folder yang berisi dua buku catatan yang telah disebarkan. Perintah ini tidak menghapus efek samping apa pun, seperti file babynames.csv yang dibuat oleh notebook pertama. Untuk menghapus babybnames.csv file, lakukan hal berikut:

  1. Di bilah samping ruang kerja Azure Databricks Anda, klik Katalog.
  2. Klik Telusuri DBFS.
  3. Klik folder FileStore.
  4. Klik panah dropdown di samping babynames.csv, dan klik Hapus.
  5. Jika Anda juga ingin menghapus bundel dari komputer pengembangan, Anda sekarang dapat menghapus direktori lokal dari Langkah 1.