Przekazywanie informacji między zadaniami przy użyciu wartości zadań
Wartości zadań odnoszą się do podrzędnego narzędzia Databricks Utilities taskValues
, co umożliwia przekazywanie dowolnych wartości między zadaniami w zadaniu usługi Databricks. Zobacz podutility taskValues (dbutils.jobs.taskValues).
Należy określić parę klucz-wartość przy użyciu dbutils.jobs.taskValues.set()
w jednym zadaniu, a następnie użyć nazwy i klucza zadania, aby odwołać się do wartości w kolejnych zadaniach.
Uwaga
Narzędzia podrzędne dbutils.jobs.taskValues.set()
i dbutils.jobs.taskValues.get()
są dostępne tylko w notesach języka Python. Wartości zadań można odwoływać się przy użyciu odwołań do wartości dynamicznych dla wszystkich zadań obsługujących parametry. Zobacz Odwołania do wartości zadań.
Ustawianie wartości zadań
Ustaw wartości zadań w notesach języka Python przy użyciu narzędzia podrzędnego dbutils.jobs.taskValues.set()
.
Klucze wartości zadania muszą być ciągami. Każdy klucz musi być unikatowy, jeśli w notesie zdefiniowano wiele wartości zadań.
Wartości zadań można przypisywać ręcznie lub programowo do kluczy. Dozwolone są tylko wartości, które mogą być wyrażone jako prawidłowy kod JSON. Rozmiar reprezentacji JSON wartości nie może przekraczać 48 KiB.
Na przykład poniższy przykład ustawia ciąg statyczny dla klucza fave_food
:
dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")
W poniższym przykładzie użyto parametru zadania notesu, aby wykonać zapytanie o wszystkie rekordy dla określonego numeru zamówienia i zwrócić bieżący stan zamówienia i łączną liczbę rekordów:
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])
Listy wartości można przekazać przy użyciu tego wzorca, a następnie użyć ich do koordynowania logiki podrzędnej, takiej jak dla każdego zadania. Zobacz Uruchamianie sparametryzowanego zadania zadania usługi Azure Databricks w pętli.
W poniższym przykładzie wyodrębnia unikatowe wartości identyfikatora produktu do listy języka Python i ustawia je jako wartość zadania:
prod_list = list(spark.read.table("products").select("prod_id").distinct().toPandas()["prod_id"])
dbutils.jobs.taskValues.set(key = "prod_list", value = prod_list)
Odwołuj się do wartości zadań
Usługa Databricks zaleca odwoływanie się do wartości zadań jako parametrów zadania skonfigurowanych przy użyciu wzorca {{tasks.<task_name>.values.<value_name>}}
odwołania do wartości dynamicznej.
Aby na przykład odwołać się do wartości zadania z kluczem prod_list
z zadania o nazwie product_inventory
, użyj składni {{tasks.product_inventory.values.prod_list}}
.
Zobacz Konfigurowanie parametrów zadania i Co to jest odwołanie do wartości dynamicznej?
Korzystanie z polecenia dbutils.jobs.taskValues.get
dbutils.jobs.taskValues.get()
Składnia wymaga określenia nadrzędnej nazwy zadania. Ta składnia nie jest zalecana, ponieważ można użyć wartości zadań w wielu podrzędnych zadaniach, co oznacza, że w przypadku zmiany nazwy zadania konieczne są liczne aktualizacje.
Korzystając z tej składni, możesz opcjonalnie określić default
wartość i .debugValue
Wartość domyślna jest używana, jeśli nie można odnaleźć klucza. Umożliwia debugValue
ustawienie wartości statycznej do użycia podczas ręcznego programowania kodu i testowania w notesach przed zaplanowaniem notesu jako zadania.
Poniższy przykład pobiera wartość klucza order_status
ustawionego w nazwie order_lookup
zadania . Wartość Delivered
jest zwracana tylko w przypadku interaktywnego uruchamiania notesu.
order_status = dbutils.jobs.taskValues.get(taskKey = "order_lookup", key = "order_status", debugValue = "Delivered")
Uwaga
Usługa Databricks nie zaleca ustawiania wartości domyślnych, ponieważ mogą być trudne do rozwiązywania problemów i zapobiegania oczekiwanym komunikatom o błędach z powodu brakujących kluczy lub niepoprawnie nazwanych zadań.
Wyświetlanie wartości zadań
Zwrócona wartość zadania dla każdego przebiegu jest wyświetlana w panelu Dane wyjściowe szczegółów przebiegu zadania. Zobacz Wyświetlanie historii uruchamiania zadań.