Görevler arasında bilgi geçirmek için görev değerlerini kullanma
Görev değerleri , Databricks işi içindeki görevler arasında rastgele değerler geçirmenize olanak tanıyan Databricks Yardımcı Programları taskValues
alt yardımcı programlarına başvurur. Bkz . taskValues alt yardımcı programı (dbutils.jobs.taskValues).
Bir görevde kullanarak dbutils.jobs.taskValues.set()
bir anahtar-değer çifti belirtirsiniz ve ardından sonraki görevlerdeki değere başvurmak için görev adını ve anahtarı kullanabilirsiniz.
Not
ve alt kullanımları dbutils.jobs.taskValues.set()
dbutils.jobs.taskValues.get()
yalnızca Python not defterlerinde kullanılabilir. Parametreleri destekleyen tüm görevler için dinamik değer başvurularını kullanarak görev değerlerine başvurabilirsiniz. Bkz. Görev değerlerine başvurma.
Görev değerlerini ayarlama
alt yardımcılığını dbutils.jobs.taskValues.set()
kullanarak Python not defterlerinde görev değerlerini ayarlayın.
Görev değeri anahtarları dize olmalıdır. Not defterinde tanımlanmış birden çok görev değeriniz varsa her anahtar benzersiz olmalıdır.
Görev değerlerini anahtarlara el ile veya program aracılığıyla atayabilirsiniz. Yalnızca geçerli JSON olarak ifade edilebilen değerlere izin verilir. Değerin JSON gösteriminin boyutu 48 KiB'ı aşamaz.
Örneğin, aşağıdaki örnek anahtarı fave_food
için statik bir dize ayarlar:
dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")
Aşağıdaki örnek, belirli bir sipariş numarasının tüm kayıtlarını sorgulamak ve geçerli sipariş durumunu ve toplam kayıt sayısını döndürmek için bir not defteri görev parametresi kullanır:
from pyspark.sql.functions import col
order_num = dbutils.widgets.get("order_num")
query = (spark.read.table("orders")
.orderBy(col("updated"), ascending=False)
.select(col("order_status"))
.where(col("order_num") == order_num)
)
dbutils.jobs.taskValues.set(key = "record_count", value = query.count())
dbutils.jobs.taskValues.set(key = "order_status", value = query.take(1)[0][0])
Bu deseni kullanarak değer listelerini geçirebilir ve sonra bunları her görev için olduğu gibi aşağı akış mantığını koordine etmek için kullanabilirsiniz. Bkz. Döngüde parametreli Azure Databricks iş görevi çalıştırma.
Aşağıdaki örnek, ürün kimliği için ayrı değerleri python listesine ayıklar ve bunu bir görev değeri olarak ayarlar:
prod_list = list(spark.read.table("products").select("prod_id").distinct().toPandas()["prod_id"])
dbutils.jobs.taskValues.set(key = "prod_list", value = prod_list)
Görev değerlerine başvurma
Databricks, görev değerlerine dinamik değer başvuru deseni {{tasks.<task_name>.values.<value_name>}}
kullanılarak yapılandırılan görev parametreleri olarak başvurmayı önerir.
Örneğin, adlı product_inventory
görevdeki anahtarla prod_list
görev değerine başvurmak için söz dizimini {{tasks.product_inventory.values.prod_list}}
kullanın.
Bkz. Görev parametrelerini yapılandırma ve Dinamik değer başvurusu nedir?
dbutils.jobs.taskValues.get
komutunu kullanma
Söz dizimi dbutils.jobs.taskValues.get()
için yukarı akış görev adının belirtilmesi gerekir. Görev değerlerini birden çok aşağı akış görevinde kullanabileceğiniz için bu söz dizimi önerilmez; bu da bir görev adı değişirse çok sayıda güncelleştirmenin gerekli olduğu anlamına gelir.
Bu söz diziminde isteğe bağlı olarak bir default
değer ve belirtebilirsiniz debugValue
. Anahtar bulunamazsa varsayılan değer kullanılır. , debugValue
not defterini görev olarak zamanlamadan önce not defterlerinde el ile kod geliştirme ve test sırasında kullanılacak statik bir değer ayarlamanıza olanak tanır.
Aşağıdaki örnek, görev adında order_lookup
anahtar order_status
kümesinin değerini alır. Değer Delivered
yalnızca not defterini etkileşimli olarak çalıştırırken döndürülür.
order_status = dbutils.jobs.taskValues.get(taskKey = "order_lookup", key = "order_status", debugValue = "Delivered")
Not
Databricks, eksik anahtarlar veya yanlış adlandırılmış görevler nedeniyle beklenen hata iletilerinin sorunlarını gidermek ve önlemek zor olabileceği için varsayılan değerlerin ayarlanmasını önermez.
Görev değerlerini görüntüleme
Her çalıştırma için bir görev değerinin döndürülen değeri, Görev çalıştırması ayrıntılarının Çıkış panelinde görüntülenir. Bkz. Görev çalıştırma geçmişini görüntüleme.