Expectations

本页包含针对 Lakeflow 声明性管道期望的 Python 参考文档。

期望修饰器在 Lakeflow 声明性管道中创建的具体化视图、流式表或临时视图上设定数据质量约束。

dp 模块包含六个修饰器,用于控制预期行为。 下表描述了这些排列的不同维度:

行为 选项
对违规行为的处理措施
  • 在目标数据集中包含该行。 将有效记录和无效记录计数与其他数据集指标一起记录。
  • 在写入目标数据集之前删除该行。 已删除记录的计数与其他数据集指标一起记录。
  • 立即停止更新。 此预期会导致单个流失败,并且不会导致管道中的其他流失败。
预期数 单个期望或多个期望。

可以将多个期望装饰器添加到数据集中,从而灵活地调整数据质量约束的严格程度。

使用 expect_all 修饰器时,每个期望都有其自己的描述和报告详细指标。

Syntax

预期修饰器在 @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 条件语句,必须计算结果为 truefalse 针对每个记录。 该约束包含正在验证的内容的实际逻辑。 当记录不符合此条件时,就会触发预期。

expect_all修饰器需要将说明和约束作为dict键值对传递。