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 elementValueError
.key
to nazwa klucza wartości zadania. Jeśli polecenie nie może odnaleźć klucza tej wartości zadania, elementValueError
zostanie zgłoszony (chyba żedefault
zostanie określony).default
jest opcjonalną wartością zwracaną, jeślikey
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_Tree
i , Random_Forest
a Best_Model
zadanie określa najlepszy model do użycia na podstawie danych wyjściowych z poprzednich trzech zadań.
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 .