Bagikan melalui


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, maka ValueError akan dimunculkan.
  • key adalah nama kunci nilai tugas. Jika perintah tidak dapat menemukan kunci nilai tugas ini, ValueError akan diajukan (kecuali default telah disebutkan).
  • default adalah nilai opsional yang dikembalikan apabila key tidak dapat ditemukan. default tidak bisa menjadi None.
  • 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 menaikkan TypeError secara default. debugValue tidak bisa menjadi None.

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_Treedan Random_Forest, dan Best_Model tugas menentukan model terbaik untuk digunakan berdasarkan output dari tiga tugas sebelumnya.

Graph of example classification application

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 .