Azure Databricks işinde görevler arasında bilgi paylaşma
Azure Databricks işinde görevler arasında rastgele parametreler geçirmek için görev değerlerini kullanabilirsiniz. Databricks Yardımcı Programlarında taskValues alt yardımcı programlarını kullanarak görev değerlerini geçirirsiniz. taskValues alt yardımcı programı, görevlerin sonraki görevlerde başvurulabilen değerleri çıkarmasına olanak tanıyan basit bir API sağlar ve bu sayede daha etkileyici iş akışları oluşturmayı kolaylaştırır. Örneğin, bir iş çalıştırması içindeki farklı görevler arasında makine öğrenmesi modelinin değerlendirmesiyle ilgili bilgiler gibi tanımlayıcıları veya ölçümleri iletebilirsiniz. Her görev birden çok görev değeri ayarlayabilir ve alabilir. Görev değerleri Python not defterlerinde ayarlanabilir ve alınabilir.
Not
Artık, yukarı akış görevlerinde ayarlanan görev değerlerine başvurmak için not defterlerinizdeki dinamik değer başvurularını kullanabilirsiniz. Örneğin, görevi Get_user_data
tarafından ayarlanan anahtarla name
değere başvurmak için kullanın{{tasks.Get_user_data.values.name}}
. Bunlar birden çok görev türüyle kullanılabildiğinden Databricks, görev değerini program aracılığıyla almak yerine dbutils.jobs.taskValues.get
dinamik değer başvuruları kullanılmasını önerir.
Görev değerlerini kullanma
taskValues alt yardımcı programı iki komut sağlar: dbutils.jobs.taskValues.set()
bir değişken ayarlamak ve dbutils.jobs.taskValues.get()
bir değer almak için. İki not defteri göreviniz Get_user_data
olduğunu ve Analyze_user_data
kullanıcının adını ve yaşını görevden Get_user_data
göreve geçirmek Analyze_user_data
istediğinizi varsayalım. Aşağıdaki örnek, görevdeki Get_user_data
kullanıcının adını ve yaşını ayarlar:
dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
key
görev değeri anahtarının adıdır. Bu ad göreve özgü olmalıdır.value
, bu görev değerinin anahtarının değeridir. Bu komutun değeri dahili olarak JSON biçiminde temsil edebilmesi gerekir. Değerin JSON gösteriminin boyutu 48 KiB'ı aşamaz.
Aşağıdaki örnek, görevdeki Analyze_user_data
değerleri alır:
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
, değeri ayaran iş görevinin adıdır. Komut bu görevi bulamazsa, birValueError
oluşturulur.key
, görev değerinin anahtarının adıdır. Komut bu görev değerinin anahtarını bulamazsa, birValueError
oluşturulur (belirtilmediği sürecedefault
).default
, bulunamazsakey
döndürülen isteğe bağlı bir değerdir.default
olamazNone
.debugValue
, bir işin dışında çalışan bir not defterinin içinden görev değerini almaya çalışırsanız döndürülen isteğe bağlı bir değerdir. Bu, not defterinizi el ile çalıştırmak ve varsayılan değer oluşturmakTypeError
yerine bir değer döndürmek istediğinizde hata ayıklama sırasında yararlı olabilir.debugValue
olamazNone
.
Görevler arasında bağlam paylaşımının daha karmaşık bir örneği olarak, bir bireyin çeşitli kişisel öznitelikler verilen gelirini tahmin etmek için birkaç makine öğrenmesi modeli içeren bir uygulamanız ve önceki üç görevin çıktısına göre kullanılacak en iyi modeli belirleyen bir göreviniz olduğunu varsayalım. Modeller , , Decision_Tree
ve Random_Forest
adlı Logistic_Regression
üç görev tarafından çalıştırılır ve Best_Model
görev, önceki üç görevin çıkışına göre kullanılacak en iyi modeli belirler.
Her modelin doğruluğu (sınıflandırıcının geliri ne kadar iyi tahmin eder) en iyi performansa sahip algoritmayı belirlemek için bir görev değerinde geçirilir. Örneğin, görevle Logistic_Regression
ilişkili lojistik regresyon not defteri aşağıdaki komutu içerir:
dbutils.jobs.taskValues.set(key = "model_performance", value = result)
Her model görevi anahtar için model_performance
bir değer ayarlar. Görev Best_Model
her görevin değerini okur ve en uygun modeli belirlemek için bu değeri kullanır. Aşağıdaki örnek, görev tarafından Logistic_Regression
ayarlanan değeri okur:
logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")
Görev değerlerini görüntüleme
Görev çalıştırıldıktan sonra görev değerini görüntülemek için görevin görev çalıştırma geçmişine gidin. Görev değeri sonuçları Çıkış panelinde görüntülenir.