Поделиться через


Expectations

Эта страница содержит справочную документацию по Python для ожиданий конвейера.

Декораторы ожиданий устанавливают ограничения на качество данных для материализованных представлений, потоковых таблиц или временных представлений, создаваемых в конвейере.

Модуль dp включает шесть декораторов для управления поведением ожиданий. В следующей таблице описываются измерения, в которых отличаются эти перемыкания:

Поведение Options
Действие по нарушению
  • Включите строку в целевой набор данных. Количество допустимых и недопустимых записей регистрируется вместе с другими метриками набора данных.
  • Удалите строку перед записью в целевой набор данных. Количество удаленных записей регистрируется вместе с другими метриками набора данных.
  • Немедленно остановите обновление. Это ожидание приводит к сбою одного потока и не приводит к сбою других потоков в конвейере.
Количество ожиданий Одно ожидание или несколько ожиданий.

Вы можете добавить несколько декораторов ожиданий в наборы данных, что обеспечивает гибкость в установке ограничений на качество данных.

При использовании expect_all декораторов каждое ожидание имеет собственное описание и предоставляет детализированные метрики.

Синтаксис

Декораторы ожиданий приходят после декоратора @dp.table(), @dp.materialized_view или @dp.temporary_view() и перед функцией определения набора данных, как показано в следующем примере:

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

Параметры

Параметр Тип Description
description str Обязательное. Описание, определяющее ограничение. Описания ограничений должны быть уникальными для каждого набора данных.
constraint str Обязательное. Предложение ограничения — это условное выражение SQL, которое должно возвращать true или false для каждой записи. Ограничение содержит фактическую логику для проверяемого объекта. Если запись завершается ошибкой этого условия, ожидания активируются.

Декораторы expect_all требуют, чтобы описания и ограничения передавались в виде dict пар "ключ-значение".