Berbagi informasi antar tugas dalam pekerjaan Azure Databricks
Anda dapat menggunakan nilai tugas untuk meneruskan parameter arbitrer antar tugas dalam pekerjaan Azure Databricks. Anda meneruskan nilai tugas menggunakan subutilitas taskValues di Utilitas Databricks. Subutilitas taskValues menyediakan API sederhana yang memungkinkan tugas untuk menghasilkan nilai yang dapat direferensikan dalam tugas berikutnya, sehingga lebih mudah untuk membuat alur kerja yang lebih ekspresif. Misalnya, Anda dapat mengkomunikasikan pengidentifikasi atau metrik, seperti informasi tentang evaluasi model pembelajaran mesin, di antara tugas yang berbeda dalam pekerjaan yang dijalankan. Setiap tugas dapat mengatur dan mendapatkan beberapa nilai tugas. Nilai tugas dapat diatur dan diambil di buku catatan Python.
Catatan
Sekarang Anda bisa menggunakan referensi nilai dinamis di buku catatan Anda untuk mereferensikan nilai tugas yang diatur dalam tugas upstram. Misalnya, untuk mereferensikan nilai dengan kunci name
yang ditetapkan oleh tugas Get_user_data
, gunakan {{tasks.Get_user_data.values.name}}
. Karena dapat digunakan dengan beberapa jenis tugas, Databricks merekomendasikan penggunaan referensi nilai dinamis alih-alih dbutils.jobs.taskValues.get
mengambil nilai tugas secara terprogram.
Menggunakan nilai tugas
Subutilitas taskValues menyediakan dua perintah: dbutils.jobs.taskValues.set()
untuk mengatur variabel dan dbutils.jobs.taskValues.get()
untuk mengambil nilai. Misalkan Anda memiliki dua tugas buku catatan: Get_user_data
dan Analyze_user_data
ingin meneruskan nama dan usia pengguna dari Get_user_data
tugas ke Analyze_user_data
tugas. Contoh berikut mengatur nama dan usia pengguna dalam Get_user_data
tugas:
dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
key
adalah nama kunci nilai tugas. Nama ini harus unik untuk tugas.value
adalah nilai kunci untuk nilai tugas ini. Perintah ini harus bisa mewakili nilai secara internal dalam format JSON. Ukuran representasi JSON dari nilai tidak dapat melebihi 48 KiB.
Contoh berikut kemudian mendapatkan nilai dalam Analyze_user_data
tugas:
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "age", default = 42, debugValue = 0)
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "name", default = "Jane Doe")
taskKey
adalah nama tugas pekerjaan yang mengatur nilai. Jika perintah tidak bisa menemukan tugas ini, makaValueError
akan dimunculkan.key
adalah nama kunci nilai tugas. Jika perintah tidak dapat menemukan kunci nilai tugas ini,ValueError
akan diajukan (kecualidefault
telah disebutkan).default
adalah nilai opsional yang dikembalikan apabilakey
tidak dapat ditemukan.default
tidak bisa menjadiNone
.debugValue
adalah nilai opsional yang akan dikembalikan jika Anda mencoba mendapatkan nilai tugas dari dalam buku catatan yang berjalan di luar pekerjaan. Hal ini mungkin berguna selama penelusuran kesalahan saat Anda ingin menjalankan buku catatan Anda secara manual dan menghasilkan beberapa nilai, alih-alih menaikkanTypeError
secara default.debugValue
tidak bisa menjadiNone
.
Sebagai contoh konteks berbagi yang lebih kompleks antar tugas, misalkan Anda memiliki aplikasi yang mencakup beberapa model pembelajaran mesin untuk memprediksi pendapatan individu yang diberikan berbagai atribut pribadi, dan tugas yang menentukan model terbaik untuk digunakan berdasarkan output dari tiga tugas sebelumnya. Model dijalankan oleh tiga tugas bernama Logistic_Regression
, , Decision_Tree
dan Random_Forest
, dan Best_Model
tugas menentukan model terbaik untuk digunakan berdasarkan output dari tiga tugas sebelumnya.
Akurasi untuk setiap model (seberapa baik pengklasifikasi memprediksi pendapatan) diteruskan dalam nilai tugas untuk menentukan algoritma berkinerja terbaik. Misalnya, notebook regresi logistik yang terkait dengan Logistic_Regression
tugas menyertakan perintah berikut:
dbutils.jobs.taskValues.set(key = "model_performance", value = result)
Setiap tugas model menetapkan nilai untuk model_performance
kunci. Tugas Best_Model
membaca nilai untuk setiap tugas, dan menggunakan nilai tersebut untuk menentukan model optimal. Contoh berikut membaca nilai yang ditetapkan oleh Logistic_Regression
tugas:
logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")
Menampilkan nilai tugas
Untuk menampilkan nilai tugas setelah tugas berjalan, buka riwayat eksekusi tugas untuk tugas tersebut. Hasil nilai tugas ditampilkan di panel Output .