Condividi tramite


Expectations

Questa pagina contiene la documentazione di riferimento di Python per i requisiti della pipeline.

I decorator delle aspettative definiscono vincoli di qualità dei dati su viste materializzate, tabelle di streaming o viste temporanee create in una pipeline.

Il dp modulo include sei decoratori per controllare il comportamento delle attese. Nella tabella seguente vengono descritte le dimensioni in base alle quali queste permutazioni differiscono:

Comportamento Options
Azione in caso di violazione
  • Includere la riga nel set di dati di destinazione. Il numero di record validi e non validi viene registrato insieme ad altre metriche del set di dati.
  • Eliminare la riga prima di scrivere nel dataset di destinazione. Il conteggio dei record eliminati viene registrato insieme ad altre metriche del set di dati.
  • Arrestare immediatamente l'aggiornamento. Questa aspettativa causa un errore di un singolo flusso e non causa l'esito negativo di altri flussi nella pipeline.
Numero di aspettative Una singola aspettativa o più aspettative.

È possibile aggiungere più decoratori delle aspettative ai set di dati, offrendo flessibilità per quanto riguarda la severità dei vincoli sulla qualità dei dati.

Quando si usano expect_all decorator, ogni aspettativa ha una propria descrizione e segnala metriche granulari.

Sintassi

I decorator di aspettativa vengono dopo un @dp.table(), @dp.materialized_view o @dp.temporary_view() decorator e prima di una funzione di definizione di dataset, come nell'esempio seguente:

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

Parametri

Parametro TIPO Description
description str Obbligatorio. Descrizione che identifica il vincolo. Le descrizioni dei vincoli devono essere univoce per ogni set di dati.
constraint str Obbligatorio. La clausola constraint è un'istruzione condizionale SQL che deve restituire true o false per ogni record. Il vincolo contiene la logica effettiva per ciò che viene convalidato. Quando un record non rispetta questa condizione, l'aspettativa viene attivata.

I expect_all decorator richiedono il passaggio di descrizioni e vincoli come coppie dict chiave-valore.