Mengakses nilai parameter dari tugas

Artikel ini menjelaskan cara mengakses nilai parameter dari kode dalam tugas Anda, termasuk buku catatan Databricks, skrip Python, dan file SQL.

Parameter meliputi parameter yang ditentukan pengguna, nilai yang dihasilkan dari tugas sebelumnya, dan nilai metadata yang dihasilkan oleh pekerjaan. Lihat Membuat parameter pekerjaan.

Meskipun detailnya bervariasi menurut jenis tugas, ada empat metode umum yang digunakan untuk mereferensikan nilai parameter dari kode sumber:

Dalam setiap kasus ini, Anda mereferensikan kunci parameter untuk mengakses nilainya. Kunci terkadang disebut sebagai nama parameter.

Untuk melihat teknik ini diterapkan dalam pekerjaan berbasis metadata yang menggunakan tugas SQL dan tugas For each, lihat Menggunakan tabel kontrol untuk menjalankan pekerjaan For each.

Gunakan dbutils dalam kode dalam buku catatan

Kode notebook yang sedang berjalan dalam sebuah tugas dapat mengakses nilai parameter dengan pustaka dbutils. Contoh berikut menunjukkan cara menggunakan dbutils di Python untuk mendapatkan nilai parameter tugas year_param yang diteruskan ke tugas buku catatan.

# Retrieve a job-level parameter
year_value = dbutils.widgets.get("year_param")

# Use the value in your code
display(babynames.filter(babynames.Year == year_value))

Parameter diakses berdasarkan nama. Jika Anda memiliki parameter tugas dan parameter pekerjaan yang memiliki nama yang sama, parameter pekerjaan akan diambil.

Kode di atas menghasilkan kesalahan saat dijalankan di buku catatan mandiri dan bukan sebagai bagian dari pekerjaan karena parameter tidak dikirim ke buku catatan mandiri. Anda dapat mengatur default untuk year_param parameter dengan kode berikut:

# Set a default (for when not running in a job)
dbutils.widgets.text("year_param", "2012", "Year Parameter")

# Retrieve a job-level parameter (will use default if it doesn't exist)
year_value = dbutils.widgets.get("year_param")

# Use the value in your code
display(babynames.filter(babynames.Year == year_value))

Meskipun ini berguna untuk pengujian di luar pekerjaan, ini juga memiliki kelemahan yaitu menyembunyikan ketika parameter tugas atau pekerjaan tidak disiapkan dengan benar.

Menggunakan parameter bernama dalam buku catatan SQL

Saat menjalankan SQL pada tugas di dalam notebook, Anda bisa menggunakan sintaks parameter bernama untuk mengakses parameter tugas. Misalnya, untuk mengakses parameter tugas yang disebut year_param, Anda bisa mendapatkan nilainya dengan menggunakan :year_param dalam kueri Anda:

SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name

Akses sebagai argumen kode

Untuk beberapa jenis tugas, parameter diteruskan ke kode sebagai argumen. Jenis tugas berikut ini memiliki argumen yang diberikan kepada mereka:

  • Python script
  • Python Wheel
  • JAR
  • Spark Submit

Untuk detailnya, lihat Detail menurut jenis tugas, nanti di artikel ini.

Untuk dbt tugas, parameter diteruskan melalui menjalankan perintah dbt dalam tugas Anda.

Menggunakan referensi nilai dinamis saat mengonfigurasi tugas

Saat Anda mengonfigurasi tugas di UI Azure Databricks, gunakan referensi nilai dinamik sintaks untuk mengakses parameter pekerjaan atau nilai dinamis lainnya. Untuk mengakses parameter pekerjaan, gunakan sintaks: {{job.parameters.<name>}}. Misalnya, saat mengonfigurasi tugas Python wheel, Anda dapat mengatur input parameter Key dan Value untuk mereferensikan parameter Pekerjaan yang disebut year_param, seperti year / Year_{{job.parameters.year_param}}. Selain menyediakan akses ke parameter dalam konfigurasi, nilai dinamis juga memberi Anda akses ke data lain tentang pekerjaan atau tugas Anda, misalnya, {{job.id}}. Anda dapat mengklik {} konfigurasi tugas untuk mendapatkan daftar kemungkinan nilai dinamis, dan menyisipkannya ke dalam konfigurasi Anda.

Detail menurut jenis tugas

Metode mana yang Anda gunakan tergantung pada jenis tugas.

Jenis tugas Akses dalam konfigurasi Akses dengan kode
Notebook Anda dapat menggunakan referensi nilai dinamis di antarmuka pengguna Azure Databricks untuk mengonfigurasi buku catatan (misalnya, untuk merujuk ke parameter pekerjaan dalam nilai parameter tugas). Anda dapat mengambil alih atau menambahkan parameter tambahan saat menjalankan tugas secara manual menggunakan opsi Jalankan pekerjaan dengan pengaturan yang berbeda . Anda dapat menggunakan parameter bernama untuk SQL di buku catatan Anda, atau dbutils.widgets dalam kode Anda.
Skrip Python Parameter yang ditentukan dalam tugas diteruskan sebagai argumen ke skrip Anda. Anda dapat menggunakan referensi nilai dinamis di kotak teks Parameter . Parameter dapat dibaca sebagai argumen posisional atau diurai menggunakan modul argparse dalam Python.
Python wheel Parameter yang ditentukan dalam definisi tugas diteruskan sebagai argumen kata kunci ke kode Anda. File roda Python Anda harus dikonfigurasi untuk menerima argumen kata kunci. Anda dapat menggunakan referensi nilai dinamis dalam nilai parameter Anda. Akses sebagai parameter kata kunci ke skrip Anda. Untuk melihat contoh membaca argumen dalam skrip Python yang dikemas dalam file roda Python, lihat Gunakan file roda Python di Pekerjaan Lakeflow.
SQL Anda dapat menggunakan referensi nilai dinamis dalam konfigurasi tugas Anda. Gunakan parameter bernama untuk mengakses nilai parameter.
Pipa Alur tidak mendukung meneruskan parameter ke tugas. Tidak didukung.
Dasbor Tugas dasbor tidak mendukung pengiriman parameter ke tugas. Tidak didukung.
Power BI Tugas Power BI tidak mendukung penerusan parameter ke dalam tugas. Tidak didukung.
dbt Anda dapat menggunakan referensi nilai dinamis untuk meneruskan parameter sebagai dbt perintah saat mengonfigurasi tugas Anda. Akses sebagai dbt perintah.
JAR Anda dapat menggunakan referensi nilai dinamis untuk meneruskan parameter sebagai argumen dalam kotak teks Parameter saat mengonfigurasi tugas Anda. Parameter diakses sebagai argumen dalam metode utama dari kelas utama.
Spark Submit Anda dapat menggunakan referensi nilai dinamis untuk meneruskan parameter sebagai argumen dalam kotak teks Parameter saat mengonfigurasi tugas Anda. Parameter diakses sebagai argumen untuk metode utama kelas induk.
Jalankan Pekerjaan Anda dapat menggunakan referensi nilai dinamis untuk membuat sekumpulan Parameter Pekerjaan saat mengonfigurasi tugas Anda. Nilai dapat menyertakan referensi nilai dinamis. Tidak berlaku.
Kondisi If/else Anda dapat menggunakan referensi nilai dinamis saat mengonfigurasi tugas Anda, misalnya, dalam Kondisi. Tidak berlaku.
Untuk masing-masing Anda dapat menggunakan referensi nilai dinamis saat mengonfigurasi Input untuk tugas Anda. Tugas berlapis menerima satu input sebagai parameter tugas untuk setiap iterasi tugas berlapis. Parameter akses tugas berlapis, berdasarkan jenis tugas.
Bersihkan buku catatan kamar Anda dapat menggunakan referensi nilai dinamis di antarmuka pengguna Azure Databricks untuk mengonfigurasi buku catatan (misalnya, untuk merujuk ke parameter pekerjaan dalam nilai parameter tugas). Anda dapat menggunakan parameter bernama untuk SQL di buku catatan Anda, atau dbutils.widgets dalam kode Anda.