Udostępnij za pomocą


Expectations

Ta strona zawiera dokumentację referencyjną języka Python dotyczącą oczekiwań potoku.

Dekoratory oczekiwań deklarują ograniczenia jakości danych dotyczące zmaterializowanych widoków, tabel przesyłania strumieniowego lub widoków tymczasowych utworzonych w potoku.

Moduł dp zawiera sześć dekoratorów do kontrolowania zachowania oczekiwań. W poniższej tabeli opisano wymiary, w których te permutacje różnią się:

Zachowanie Opcje
Działanie w przypadku naruszenia
  • Uwzględnij wiersz w docelowym zestawie danych. Liczba prawidłowych i nieprawidłowych rekordów jest rejestrowana wraz z innymi metrykami zestawu danych.
  • Przed zapisaniem w docelowym zestawie danych usuń wiersz. Liczba porzuconych rekordów jest rejestrowana wraz z innymi metrykami zestawu danych.
  • Natychmiast zatrzymaj aktualizację. To oczekiwanie powoduje awarię pojedynczego przepływu danych i nie powoduje niepowodzenia innych przepływów w pipeline'u.
Liczba oczekiwań Jedno oczekiwanie lub wiele oczekiwań.

Do zestawów danych można dodać wiele dekoratorów oczekiwań, zapewniając elastyczność w zakresie ograniczeń dotyczących jakości danych.

W przypadku korzystania z expect_all dekoratorów każde oczekiwanie ma własny opis i raportuje szczegółowe dane metryczne.

Składnia

Dekoratory oczekiwań występują po dekoratorze @dp.table(), @dp.materialized_view lub @dp.temporary_view(), a przed funkcją definiującą zestaw danych, jak pokazano w poniższym przykładzie:

from pyspark import pipelines as dp

@dp.table()
@dp.expect(description, constraint)
@dp.expect_or_drop(description, constraint)
@dp.expect_or_fail(description, constraint)
@dp.expect_all({description: constraint, ...})
@dp.expect_all_or_drop({description: constraint, ...})
@dp.expect_all_or_fail({description: constraint, ...})
def <function-name>():
    return (<query>)

Parametry

Parameter Typ Description
description str To jest wymagane. Opis identyfikujący ograniczenie. Opisy ograniczeń muszą być unikatowe dla każdego zestawu danych.
constraint str To jest wymagane. Klauzula ograniczenia jest instrukcją warunkową SQL, która musi zwrócić wartość true lub false dla każdego rekordu. Ograniczenie zawiera rzeczywistą logikę sprawdzania poprawności. Gdy rekord zakończy się niepowodzeniem tego warunku, zostanie wyzwolone oczekiwanie.

Dekoratory expect_all wymagają przekazania opisów oraz ograniczeń w formie dict par klucz-wartość.