Freigeben über


Erwartungshaltung

Diese Seite enthält Python-Referenzdokumentation für Pipelineerwartungen.

Erwartungsdekoratoren definieren Datenqualitätseinschränkungen für materialisierte Sichten, Streamingtabellen oder temporäre Sichten, die in einer Pipeline erstellt wurden.

Das dp Modul enthält sechs Dekoratoren, um das Verhalten der Erwartungen zu steuern. In der folgenden Tabelle werden die Dimensionen beschrieben, auf denen sich diese Permutationen unterscheiden:

Verhalten Options
Maßnahmen bei Verstößen
  • Fügen Sie die Zeile in das Ziel-Dataset ein. Die Anzahl der gültigen und ungültigen Datensätze wird zusammen mit anderen Datasetmetriken protokolliert.
  • Entfernen Sie die Zeile, bevor Sie in den Zieldatensatz schreiben. Die Anzahl der verworfenen Datensätze wird zusammen mit anderen Datasetmetriken protokolliert.
  • Beenden Sie das Update sofort. Diese Erwartung verursacht einen Fehler eines einzelnen Flusses und führt nicht dazu, dass andere Flüsse in Ihrer Pipeline fehlschlagen.
Anzahl der Erwartungen Eine einzelne Erwartung oder mehrere Erwartungen.

Sie können Ihren Datensätzen mehrere Erwartungsdekorationen hinzufügen und Flexibilität hinsichtlich der Strenge Ihrer Datenqualitätseinschränkungen bieten.

Wenn Sie expect_all-Dekoratoren verwenden, verfügt jede Erwartung über eine eigene Beschreibung und meldet granulare Metriken.

Syntax

Erwartungsdekorationen kommen nach einem @dp.table(), @dp.materialized_view oder @dp.temporary_view() Dekorateur und vor einer Datensatzdefinitionsfunktion, wie im folgenden Beispiel gezeigt wird.

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>)

Die Parameter

Parameter Typ Description
description str Erforderlich. Eine Beschreibung, die die Einschränkung identifiziert. Einschränkungsbeschreibungen müssen für jedes Dataset eindeutig sein.
constraint str Erforderlich. Die Einschränkungsklausel ist eine SQL-bedingte Anweisung, die zu true oder false für jeden Datensatz ausgewertet werden muss. Die Einschränkung enthält die tatsächliche Logik für die Überprüfung. Wenn ein Datensatz diese Bedingung nicht erfüllt, wird die Erwartung ausgelöst.

Für die expect_all Dekorateure sind Beschreibungen und Einschränkungen erforderlich, die als Schlüsselwertpaare dict übergeben werden.