Udostępnij za pośrednictwem


Dokumentacja tabeli systemu zadań

Uwaga

Schemat lakeflow był wcześniej znany jako workflow. Zawartość obu schematów jest identyczna. Aby uwidocznić schemat lakeflow, należy włączyć go oddzielnie.

W tym artykule opisano sposób używania tabel systemu lakeflow do monitorowania zadań na koncie. Te tabele obejmują rekordy ze wszystkich obszarów roboczych na koncie wdrożonym w tym samym regionie chmury. Aby wyświetlić rekordy z innego regionu, należy wyświetlić tabele z obszaru roboczego wdrożonego w tym regionie.

Wymagania

Dostępne tabele zadań

Wszystkie tabele systemowe dotyczące zadań znajdują się w schemacie system.lakeflow. Obecnie schemat hostuje cztery tabele:

Stół opis Obsługuje przesyłanie strumieniowe Okres bezpłatnego przechowywania Obejmuje dane globalne lub regionalne
zadań (publiczna wersja zapoznawcza) Śledzi wszystkie zadania utworzone na koncie Tak 365 dni Regionalny
job_tasks (Publiczna Wersja Testowa) Śledzi wszystkie zadania robocze uruchomione na koncie Tak 365 dni Regionalny
job_run_timeline (publiczna wersja zapoznawcza) Śledzi wykonywanie zadań i powiązane metadane Tak 365 dni Regionalny
job_task_run_timeline (publiczna wersja zapoznawcza) Śledzi wykonania zadań i powiązane metadane Tak 365 dni Regionalny

Szczegółowe odniesienie do schematu

W poniższych sekcjach przedstawiono odwołania do schematu dla każdej z tabel systemowych związanych z zadaniami.

schemat tabeli zadań

Tabela jobs jest tabelą wymiaru powoli zmieniającą się (SCD2). Gdy wiersz ulegnie zmianie, nowy wiersz jest emitowany, logicznie zastępując poprzedni.

ścieżka tabeli: system.lakeflow.jobs

Nazwa kolumny Typ danych opis Notatki
account_id string Identyfikator konta, do którego należy to zadanie
workspace_id string Identyfikator obszaru roboczego, do którego należy to zadanie
job_id string Identyfikator zadania Tylko unikalny w obrębie jednego obszaru roboczego
name string Podana przez użytkownika nazwa zadania
description string Podany przez użytkownika opis zadania To pole jest puste, jeśli masz skonfigurowane klucze zarządzane przez klienta .

Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.
creator_id string Identyfikator głównego podmiotu, który utworzył zadanie
tags string Tagi niestandardowe dostarczone przez użytkownika skojarzone z tym zadaniem
change_time timestamp Godzina ostatniej modyfikacji zadania Strefa czasowa zarejestrowana jako +00:00 (UTC)
delete_time timestamp Godzina usunięcia zadania przez użytkownika Strefa czasowa zarejestrowana jako +00:00 (UTC)
run_as string Identyfikator użytkownika lub jednostki usługi, którego uprawnienia są używane do uruchomienia zadania

Przykładowe zapytanie

-- Get the most recent version of a job
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.jobs QUALIFY rn=1

schemat tabeli zadań

Tabela zadań pracy jest wolno zmieniającą się tabelą wymiarów (SCD2). Gdy wiersz ulegnie zmianie, nowy wiersz jest emitowany, logicznie zastępując poprzedni.

ścieżka tabeli: system.lakeflow.job_tasks

Nazwa kolumny Typ danych opis Notatki
account_id string Identyfikator konta, do którego należy to zadanie
workspace_id string Identyfikator obszaru roboczego, do którego należy to zadanie
job_id string Identyfikator zadania Tylko unikalny w obrębie jednego obszaru roboczego
task_key string Klucz referencyjny zadania w projekcie Tylko wyjątkowe w obrębie jednej pracy
depends_on_keys tablica Klucze zadań wszystkich nadrzędnych zależności tego zadania
change_time timestamp Godzina ostatniej modyfikacji zadania Strefa czasowa zarejestrowana jako +00:00 (UTC)
delete_time timestamp Godzina usunięcia zadania przez użytkownika Strefa czasowa zarejestrowana jako +00:00 (UTC)

Przykładowe zapytanie

-- Get the most recent version of a job task
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.job_tasks QUALIFY rn=1

schemat tabeli harmonogramu uruchamiania zadania

Tabela osi czasu uruchamiania zadania jest niezmienna i kompletna w momencie jej utworzenia.

ścieżka tabeli: system.lakeflow.job_run_timeline

Nazwa kolumny Typ danych opis Notatki
account_id string Identyfikator konta, do którego należy to zadanie
workspace_id string Identyfikator obszaru roboczego, do którego należy to zadanie
job_id string Identyfikator zadania Ten klucz jest unikatowy tylko w obrębie jednego obszaru roboczego
run_id string Identyfikator przebiegu zadania
period_start_time timestamp Godzina rozpoczęcia dla biegu lub dla okresu czasowego. Informacje o strefie czasowej są rejestrowane na końcu wartości, z +00:00 reprezentującym UTC
period_end_time timestamp Czas zakończenia zadania lub okresu Informacje o strefie czasowej są rejestrowane na końcu wartości, z +00:00 reprezentującym UTC
trigger_type string Typ wyzwalacza, który może uruchamiać proces Aby zobaczyć możliwe wartości, zobacz wartości typu wyzwalacza
run_type string Rodzaj wykonania zadania Aby uzyskać informacje o możliwych wartościach, zobacz Wartości typu uruchamiania
run_name string Podana przez użytkownika nazwa przebiegu skojarzona z tym uruchomieniem zadania
compute_ids tablica Tablica zawierająca identyfikatory przetwarzania zadań dla uruchomienia nadrzędnego zadania Służy do identyfikowania klastra zadań używanego przez typy uruchamiania WORKFLOW_RUN. Aby uzyskać inne informacje o obliczeniach, zapoznaj się z tabelą job_task_run_timeline.

Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.
result_state string Wynik uruchomienia zadania Aby uzyskać możliwe wartości, zobacz Wartości stanu wyników
termination_code string Kod zakończenia wykonania zadania Aby sprawdzić dostępne wartości, zobacz Wartości kodu zakończenia.

Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.
job_parameters map Parametry na poziomie zadania używane w przebiegu zadania Przestarzałe ustawienia notebook_params nie są uwzględniane w tym polu.

Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.

Przykładowe zapytanie

-- This query gets the daily job count for a workspace for the last 7 days:
SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL

-- This query returns the daily job count for a workspace for the last 7 days, distributed by the outcome of the job run.
SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  result_state,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
  AND result_state IS NOT NULL
GROUP BY ALL

-- This query returns the average time of job runs, measured in seconds. The records are organized by job. A top 90 and a 95 percentile column show the average lengths of the job's longest runs.
with job_run_duration as (
    SELECT
        workspace_id,
        job_id,
        run_id,
        CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
    FROM
        system.lakeflow.job_run_timeline
    WHERE
      period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.job_id,
    COUNT(DISTINCT t1.run_id) as runs,
    MEAN(t1.duration) as mean_seconds,
    AVG(t1.duration) as avg_seconds,
    PERCENTILE(t1.duration, 0.9) as p90_seconds,
    PERCENTILE(t1.duration, 0.95) as p95_seconds
FROM
    job_run_duration t1
GROUP BY ALL
ORDER BY mean_seconds DESC
LIMIT 100

-- This query provides a historical runtime for a specific job based on the `run_name` parameter. For the query to work, you must set the `run_name`.
SELECT
  workspace_id,
  run_id,
  SUM(period_end_time - period_start_time) as run_time
FROM system.lakeflow.job_run_timeline
WHERE
  run_type="SUBMIT_RUN"
  AND run_name = :run_name
  AND period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
GROUP BY ALL

-- This query collects a list of retried job runs with the number of retries for each run.
with repaired_runs as (
    SELECT
    workspace_id, job_id, run_id, COUNT(*) - 1 as retries_count
    FROM system.lakeflow.job_run_timeline
    WHERE result_state IS NOT NULL
    GROUP BY ALL
    HAVING retries_count > 0
    )
SELECT
    *
FROM repaired_runs
ORDER BY retries_count DESC
    LIMIT 10;

schemat tabeli harmonogramu uruchamiania zadania

Tabela harmonogramu uruchamiania zadania jest niezmienną i kompletną w momencie jej tworzenia.

ścieżka tabeli: system.lakeflow.job_task_run_timeline

Nazwa kolumny Typ danych opis Notatki
account_id string Identyfikator konta, do którego należy to zadanie
workspace_id string Identyfikator obszaru roboczego, do którego należy to zadanie
job_id string Identyfikator zadania Tylko unikalny w obrębie jednego obszaru roboczego
run_id string Identyfikator przebiegu zadania
job_run_id string Identyfikator przebiegu zadania Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.
parent_run_id string Identyfikator uruchomienia nadrzędnego Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.
period_start_time timestamp Godzina rozpoczęcia zadania lub okresu Informacje o strefie czasowej są rejestrowane na końcu wartości, z +00:00 reprezentującym UTC
period_end_time timestamp Godzina zakończenia zadania lub okresu Informacje o strefie czasowej są rejestrowane na końcu wartości, z +00:00 reprezentującym UTC
task_key string Klucz referencyjny zadania w projekcie Ten klucz jest unikatowy tylko w ramach jednego zadania
compute_ids tablica Tablica compute_ids zawiera identyfikatory klastrów zadań, klastrów interaktywnych i magazynów SQL używanych przez zadanie.
result_state string Wynik uruchomienia zadania roboczego Aby uzyskać możliwe wartości, zobacz Wartości stanu wyników
termination_code string Kod zakończenia przebiegu zadania Aby sprawdzić dostępne wartości, zobacz Wartości kodu zakończenia.

Nieupełnione dla wierszy emitowanych przed końcem sierpnia 2024 r.

typowe wzorce sprzężenia

W poniższych sekcjach przedstawiono przykładowe zapytania, które podkreślają często używane wzorce łączenia dla systemowych tabel zadań.

Połącz tabele zadań i osi czasu wykonania zadań

Nadanie uruchomieniom zadań ich nazw

with jobs as (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
    FROM system.lakeflow.jobs QUALIFY rn=1
)
SELECT
    job_run_timeline.*
    jobs.name
FROM system.lakeflow.job_run_timeline
    LEFT JOIN jobs USING (workspace_id, job_id)

Dołączanie tabel przebiegu zadania do osi czasu i tabel użycia

Wzbogacanie każdego dziennika rozliczeniowego za pomocą metadanych przebiegu zadania

SELECT
    t1.*,
    t2.*
FROM system.billing.usage t1
    LEFT JOIN system.lakeflow.job_run_timeline t2
        ON t1.workspace_id = t2.workspace_id
            AND t1.usage_metadata.job_id = t2.job_id
            AND t1.usage_metadata.job_run_id = t2.run_id
            AND t1.usage_start_time >= date_trunc("Hour", t2.period_start_time)
            AND t1.usage_start_time < date_trunc("Hour", t2.period_end_time) + INTERVAL 1 HOUR
WHERE
    billing_origin_product="JOBS"

Oblicz koszt uruchomienia zadania

To zapytanie łączy się z tabelą systemu billing.usage w celu obliczenia kosztu uruchomienia zadania.

with jobs_usage AS (
  SELECT
    *,
    usage_metadata.job_id,
    usage_metadata.job_run_id as run_id,
    identity_metadata.run_as as run_as
  FROM system.billing.usage
  WHERE billing_origin_product="JOBS"
),
jobs_usage_with_usd AS (
  SELECT
    jobs_usage.*,
    usage_quantity * pricing.default as usage_usd
  FROM jobs_usage
    LEFT JOIN system.billing.list_prices pricing ON
      jobs_usage.sku_name = pricing.sku_name
      AND pricing.price_start_time <= jobs_usage.usage_start_time
      AND (pricing.price_end_time >= jobs_usage.usage_start_time OR pricing.price_end_time IS NULL)
      AND pricing.currency_code="USD"
),
jobs_usage_aggregated AS (
  SELECT
    workspace_id,
    job_id,
    run_id,
    FIRST(run_as, TRUE) as run_as,
    sku_name,
    SUM(usage_usd) as usage_usd,
    SUM(usage_quantity) as usage_quantity
  FROM jobs_usage_with_usd
  GROUP BY ALL
)
SELECT
  t1.*,
  MIN(period_start_time) as run_start_time,
  MAX(period_end_time) as run_end_time,
  FIRST(result_state, TRUE) as result_state
FROM jobs_usage_aggregated t1
  LEFT JOIN system.lakeflow.job_run_timeline t2 USING (workspace_id, job_id, run_id)
GROUP BY ALL
ORDER BY usage_usd DESC
LIMIT 100

Uzyskaj dzienniki użycia dla zadań SUBMIT_RUN

SELECT
  *
FROM system.billing.usage
WHERE
  EXISTS (
      SELECT 1
      FROM system.lakeflow.job_run_timeline
      WHERE
        job_run_timeline.job_id = usage_metadata.job_id
        AND run_name = :run_name
        AND workspace_id = :workspace_id
  )

Połącz harmonogram uruchomienia zadań i tabele klastrów

Wzbogacić uruchomienia zadań o metadane klastrów

with clusters as (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
    FROM system.compute.clusters QUALIFY rn=1
),
exploded_task_runs AS (
  SELECT
    *,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE array_size(compute_ids) > 0
)
SELECT
  exploded_task_runs.*,
  clusters.*
FROM exploded_task_runs t1
  LEFT JOIN clusters t2
    USING (workspace_id, cluster_id)

Znajdź zadania uruchamiane na uniwersalnych obliczeniach

To zapytanie łączy się z tabelą systemową compute.clusters, aby zwrócić ostatnie zadania uruchomione na zasobach obliczeniowych ogólnego przeznaczenia zamiast na zasobach obliczeniowych dla zadań.

with clusters AS (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
  FROM system.compute.clusters
  WHERE cluster_source="UI" OR cluster_source="API"
  QUALIFY rn=1
),
job_tasks_exploded AS (
  SELECT
    workspace_id,
    job_id,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE period_start_time >= CURRENT_DATE() - INTERVAL 30 DAY
),
all_purpose_cluster_jobs AS (
  SELECT
    t1.*,
    t2.cluster_name,
    t2.owned_by,
    t2.dbr_version
  FROM job_tasks_exploded t1
    INNER JOIN clusters t2 USING (workspace_id, cluster_id)
)
SELECT * FROM all_purpose_cluster_jobs LIMIT 10;

Panel monitorowania zadań

Poniższy pulpit nawigacyjny używa tabel systemowych, aby ułatwić rozpoczęcie monitorowania zadań i kondycji operacyjnej. Obejmuje to typowe przypadki użycia, takie jak śledzenie wydajności zadań, monitorowanie awarii i wykorzystanie zasobów.

pulpit nawigacyjny obserwowalności kosztów zadań

Aby uzyskać informacje na temat pobierania pulpitu nawigacyjnego, zobacz Monitorowanie kosztów zadań & wydajności za pomocą tabel systemowych

Rozwiązywanie problemów

Zadanie nie jest rejestrowane w tabeli lakeflow.jobs

Jeśli zadanie nie jest widoczne w tabelach systemowych:

  • Zadanie nie zostało zmodyfikowane w ciągu ostatnich 365 dni
    • Zmodyfikuj dowolne pola zadania obecne w schemacie, aby emitować nowy rekord.
  • Zadanie zostało utworzone w innym regionie
  • Ostatnie tworzenie miejsc pracy (opóźnienia w tabeli)

Nie można znaleźć zadania widocznego w tabeli job_run_timeline

Nie wszystkie uruchomienia zadań są widoczne wszędzie. Podczas gdy wpisy JOB_RUN są wyświetlane we wszystkich tabelach związanych z zadaniami, WORKFLOW_RUN (przebiegi przepływu pracy notesu) są rejestrowane tylko w job_run_timeline i SUBMIT_RUN (jednorazowe przesłane uruchomienia) są rejestrowane tylko w obu tabelach osi czasu. Te przebiegi nie są przepisywane do innych tabel systemu zadań, takich jak jobs lub job_tasks.

Zobacz tabelę Typy uruchamiania poniżej, aby zapoznać się ze szczegółowym podziałem, gdzie każdy typ uruchomienia jest widoczny i dostępny.

Uruchomienie zadania nie jest widoczne w tabeli billing.usage

W system.billing.usagepole usage_metadata.job_id jest wypełniane tylko dla zadań uruchamianych na zasobach obliczeniowych pracy lub obliczeniach bezserwerowych.

Ponadto zadania WORKFLOW_RUN nie mają własnych usage_metadata.job_id ani usage_metadata.job_run_id przypisania w system.billing.usage. Zamiast tego ich użycie obliczeniowe jest przypisywane do notatnika nadrzędnego, który je wyzwolił. Oznacza to, że gdy notes uruchamia proces przepływu pracy, wszystkie koszty obliczeń są uwzględnione w ramach korzystania z notesu nadrzędnego, a nie jako oddzielne zadanie przepływu pracy.

Aby uzyskać więcej informacji, zobacz Referencje dotyczące metadanych użycia.

Oblicz koszt zadania uruchamianego na uniwersalnej mocy obliczeniowej

Dokładne obliczanie kosztów dla zadań uruchomionych celowo w obliczeniach nie jest możliwe z dokładnością 100%. Gdy zadanie jest uruchamiane na interaktywnej (uniwersalnej) jednostce obliczeniowej, wiele obciążeń, takich jak notatniki, zapytania SQL lub inne zadania, często działają jednocześnie na tym samym zasobie obliczeniowym. Ponieważ zasoby klastra są współużytkowane, nie ma bezpośredniego mapowania 1:1 między kosztami obliczeniowymi a poszczególnymi przebiegami zadań.

W celu dokładnego śledzenia kosztów zadań, Databricks zaleca uruchamianie zadań na dedykowanych zasobach obliczeniowych lub na bezserwerowych zasobach obliczeniowych, gdzie usage_metadata.job_id i usage_metadata.job_run_id umożliwiają precyzyjne przypisanie kosztów.

Jeśli musisz używać obliczeń typu all-purpose, możesz:

  • Monitoruj użycie i ogólne koszty klastra w system.billing.usage na podstawie usage_metadata.cluster_id.
  • Śledzenie metryk czasu wykonywania zadania oddzielnie.
  • Należy wziąć pod uwagę, że oszacowanie kosztów będzie przybliżone z powodu zasobów udostępnionych.

Aby uzyskać więcej informacji na temat przypisywania kosztów, zobacz Dokumentacja metadanych użycia.

Wartości referencyjne

Poniższa sekcja zawiera odwołania do wybranych kolumn w tabelach dotyczących pracy.

wartości typu wyzwalacza

Możliwe wartości kolumny trigger_type to:

  • CONTINUOUS
  • CRON
  • FILE_ARRIVAL
  • ONETIME
  • ONETIME_RETRY

wartości typu uruchomienia

Możliwe wartości kolumny run_type to:

Typ opis Lokalizacja interfejsu użytkownika Punkt końcowy interfejsu API Tabele systemowe
JOB_RUN Standardowe wykonywanie zadania Interfejs użytkownika uruchamiania zadań & zadania /jobs i /jobs/runs punkty końcowe zadania, zadania_robocze, harmonogram_uruchamiania_zadania, harmonogram_uruchamiania_zadania_roboczego
SUBMIT_RUN Jednorazowe uruchomienie przez POST /jobs/runs/submit Interfejs użytkownika dla przebiegów zadań tylko /jobs/runs tylko punkty końcowe oś czasu uruchomienia zadania, oś czasu uruchomienia zadania task
WORKFLOW_RUN Uruchomienie zainicjowane z przepływu pracy notebooka Niewidoczne Niedostępny harmonogram wykonywania zadania

wartości stanu wyniku

Możliwe wartości kolumny result_state to:

Stan opis
SUCCEEDED Przebieg został ukończony pomyślnie
FAILED Przebieg został ukończony z powodu błędu
SKIPPED Uruchomienie nigdy nie zostało przeprowadzone, ponieważ warunek nie został spełniony
CANCELLED Przebieg został anulowany na żądanie użytkownika
TIMED_OUT Przebieg został zatrzymany po osiągnięciu limitu czasu
ERROR Przebieg został ukończony z powodu błędu
BLOCKED Przebieg został zablokowany z powodu zależności nadrzędnej

wartości kodu zakończenia

Możliwe wartości kolumny termination_code to:

Kod zakończenia opis
SUCCESS Przebieg został ukończony pomyślnie
CANCELLED Przebieg został anulowany w trakcie wykonywania przez platformę Databricks; na przykład, jeśli maksymalny czas trwania przebiegu został przekroczony
SKIPPED Uruchomienie nigdy nie zostało wykonane, na przykład jeśli uruchomienie zadania nadrzędnego nie powiodło się, warunek typu zależności nie został spełniony lub nie było żadnych zadań materiałowych do wykonania
DRIVER_ERROR Przebieg napotkał błąd podczas komunikacji ze sterownikiem Platformy Spark
CLUSTER_ERROR Uruchomienie nie powiodło się z powodu błędu klastra
REPOSITORY_CHECKOUT_FAILED Nie udało się sfinalizować zakupu z powodu błędu w komunikacji z usługą zewnętrznego dostawcy
INVALID_CLUSTER_REQUEST Uruchomienie nie powiodło się, ponieważ wydało nieprawidłowe żądanie uruchomienia klastra
WORKSPACE_RUN_LIMIT_EXCEEDED Obszar roboczy osiągnął limit maksymalnej liczby równoczesnych aktywnych procesów. Rozważ zaplanowanie przebiegów w dłuższym przedziale czasu
FEATURE_DISABLED Uruchomienie nie powiodło się, ponieważ próbowano uzyskać dostęp do funkcji niedostępnej dla obszaru roboczego
CLUSTER_REQUEST_LIMIT_EXCEEDED Liczba żądań tworzenia, uruchamiania i rozbudowy klastra przekroczyła przydzielony limit. Rozważ rozłożenie realizacji procesu w większym przedziale czasu
STORAGE_ACCESS_ERROR Proces nie powiódł się z powodu błędu podczas uzyskiwania dostępu do magazynu blob klienta.
RUN_EXECUTION_ERROR Przebieg został ukończony z błędami wykonania zadań
UNAUTHORIZED_ERROR Przebieg nie powiódł się z powodu problemu z uprawnieniami podczas uzyskiwania dostępu do zasobu
LIBRARY_INSTALLATION_ERROR Przebieg nie powiódł się podczas instalowania biblioteki żądanej przez użytkownika. Przyczyny mogą obejmować, ale nie są ograniczone do: podana biblioteka jest nieprawidłowa, nie ma wystarczających uprawnień do zainstalowania biblioteki itd.
MAX_CONCURRENT_RUNS_EXCEEDED Zaplanowane uruchomienie przekracza limit maksymalnych jednoczesnych uruchomień ustawionych dla zadania
MAX_SPARK_CONTEXTS_EXCEEDED Przebieg jest zaplanowany w klastrze, który osiągnął już maksymalną liczbę kontekstów skonfigurowanych do utworzenia
RESOURCE_NOT_FOUND Zasób niezbędny do wykonania przebiegu nie istnieje
INVALID_RUN_CONFIGURATION Przebieg nie powiódł się z powodu nieprawidłowej konfiguracji
CLOUD_FAILURE Przebieg nie powiódł się z powodu problemu z dostawcą usług w chmurze
MAX_JOB_QUEUE_SIZE_EXCEEDED Przebieg został pominięty z powodu osiągnięcia limitu rozmiaru kolejki dla poziomu zadania