Udostępnij za pośrednictwem


Przekazywanie informacji między zadaniami przy użyciu wartości zadań

wartości zadania odnoszą się do narzędzia Databricks, a konkretnie podprogramu taskValues, co umożliwia przekazywanie dowolnych wartości między zadaniami w zadaniu 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

Ponieważ dbutils.jobs.taskValues.set() i dbutils.jobs.taskValues.get() w podprogramie dbutils.jobs.taskValues są funkcjami Pythona, można je używać tylko w notesach, gdzie Python jest ustawiony jako język. Można jednak odwoływać się do wartości zadań przy użyciu odwołań do wartości dynamicznych dla wszystkich zadań obsługujących parametry. Zobacz wartości zadań referencyjnych .

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ębniamy unikatowe wartości identyfikatora produktu na listę w Pythonie i ustawiamy ją 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)

Wartości zadań referencyjnych

Databricks zaleca odwoływanie się do wartości zadań jako parametrów zadania skonfigurowanych za pomocą wzorca odniesienia wartości dynamicznej {{tasks.<task_name>.values.<value_name>}}.

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 zadań 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. debugValue umożliwia ustawienie wartości statycznej do użycia podczas ręcznego tworzenia kodu i testowania w notatnikach przed zaplanowaniem notatnika jako zadania.

Poniższy przykład pobiera wartość klucza order_status ustawioną w nazwie zadania order_lookup. 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ń.