Share via


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.

Dekont

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_datatarafı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, bir ValueError oluşturulur.
  • key , görev değerinin anahtarının adıdır. Komut bu görev değerinin anahtarını bulamazsa, bir ValueError oluşturulur (belirtilmediği sürece default ).
  • default , bulunamazsa key döndürülen isteğe bağlı bir değerdir. default olamaz None.
  • 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şturmak TypeError yerine bir değer döndürmek istediğinizde hata ayıklama sırasında yararlı olabilir. debugValue olamaz None.

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_Treeve Random_Forestadlı 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.

Graph of example classification application

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.