Udostępnij za pośrednictwem


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_lookupzadania . 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ń.