Udostępnianie informacji między zadaniami w zadaniu usługi Azure Databricks

Wartości zadań umożliwiają przekazywanie dowolnych parametrów między zadaniami w zadaniu usługi Azure Databricks. Wartości zadań są przekazywane przy użyciu podzadania taskValues w narzędziach usługi Databricks. Podrzędność taskValues udostępnia prosty interfejs API, który umożliwia wykonywanie zadań wyjściowych wartości, do których można się odwoływać w kolejnych zadaniach, co ułatwia tworzenie bardziej ekspresyjnych przepływów pracy. Można na przykład komunikować identyfikatory lub metryki, takie jak informacje o ocenie modelu uczenia maszynowego, między różnymi zadaniami w ramach przebiegu zadania. Każde zadanie może ustawiać i pobierać wiele wartości zadań. Wartości zadań można ustawiać i pobierać w notesach języka Python.

Uwaga

Teraz możesz używać odwołań do wartości dynamicznych w notesach, aby odwoływać się do wartości zadań skonfigurowanych w zadaniach nadrzędnych. Aby na przykład odwołać się do wartości z kluczem name ustawionym przez zadanie Get_user_data, użyj polecenia {{tasks.Get_user_data.values.name}}. Ponieważ mogą być używane z wieloma typami zadań, usługa Databricks zaleca programowe używanie odwołań do wartości dynamicznych zamiast dbutils.jobs.taskValues.get pobierać wartość zadania.

Używanie wartości zadań

Podrzędność taskValues udostępnia dwa polecenia: dbutils.jobs.taskValues.set() aby ustawić zmienną i dbutils.jobs.taskValues.get() pobrać wartość. Załóżmy, że masz dwa zadania notesu: Get_user_data i Analyze_user_data chcesz przekazać nazwę i wiek użytkownika z Get_user_data zadania do Analyze_user_data zadania. W poniższym przykładzie ustawiono nazwę i wiek użytkownika w Get_user_data zadaniu:

dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
  • key to nazwa klucza wartości zadania. Ta nazwa musi być unikatowa dla zadania.
  • value jest wartością klucza tej wartości zadania. To polecenie musi być w stanie reprezentować wartość wewnętrznie w formacie JSON. Rozmiar reprezentacji JSON wartości nie może przekraczać 48 KiB.

Poniższy przykład pobiera następnie wartości w Analyze_user_data zadaniu:

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 to nazwa zadania zadania ustawiania wartości. Jeśli polecenie nie może odnaleźć tego zadania, zostanie zgłoszony element ValueError .
  • key to nazwa klucza wartości zadania. Jeśli polecenie nie może odnaleźć klucza tej wartości zadania, element ValueError zostanie zgłoszony (chyba że default zostanie określony).
  • default jest opcjonalną wartością zwracaną, jeśli key nie można jej odnaleźć. default nie może być None.
  • debugValue jest opcjonalną wartością zwracaną w przypadku próby pobrania wartości zadania z poziomu notesu uruchomionego poza zadaniem. Może to być przydatne podczas debugowania, gdy chcesz ręcznie uruchomić notes i zwrócić pewną wartość zamiast domyślnie podnieść TypeError . debugValue nie może być None.

Jako bardziej złożony przykład udostępniania kontekstu między zadaniami załóżmy, że masz aplikację, która zawiera kilka modeli uczenia maszynowego do przewidywania dochodu osoby, biorąc pod uwagę różne atrybuty osobiste, oraz zadanie, które określa najlepszy model do użycia na podstawie danych wyjściowych z poprzednich trzech zadań. Modele są uruchamiane przez trzy zadania o nazwie Logistic_Regression, Decision_Treei , Random_Foresta Best_Model zadanie określa najlepszy model do użycia na podstawie danych wyjściowych z poprzednich trzech zadań.

Graph of example classification application

Dokładność każdego modelu (jak dobrze klasyfikator przewiduje dochód) jest przekazywana w wartości zadania w celu określenia algorytmu o najlepszej wydajności. Na przykład notes regresji logistycznej skojarzony z Logistic_Regression zadaniem zawiera następujące polecenie:

dbutils.jobs.taskValues.set(key = "model_performance", value = result)

Każde zadanie modelu ustawia wartość klucza model_performance . Zadanie Best_Model odczytuje wartość dla każdego zadania i używa tej wartości do określenia optymalnego modelu. Poniższy przykład odczytuje wartość ustawioną Logistic_Regression przez zadanie:

logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")

Wyświetlanie wartości zadań

Aby wyświetlić wartość wartości zadania po uruchomieniu zadania, przejdź do historii uruchamiania zadania dla zadania. Wyniki wartości zadania są wyświetlane na panelu Dane wyjściowe .