Lakeflow 声明性管道 Python 语言参考

本部分提供了 Lakeflow 声明性管道 Python 编程接口的详细信息。

dp 模块概述

Lakeflow 声明性管道 Python 函数在 pyspark.pipelines 模块中定义(导入为dp)。 使用 Python API 实现的管道必须导入此模块:

from pyspark import pipelines as dp

注释

公共的开放源代码版本 pyspark 还包括该 pipelines 模块。 大部分代码都与 Azure Databricks 中使用的版本兼容。 在开源版本中编写的代码在 Azure Databricks 中有效。 但是,Azure Databricks 版本中 pipelines 的一些功能不适用于 OSS pyspark。 以下功能不兼容:

  • dp.create_auto_cdc_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)
  • @dp.temporary_view

发生了什么事 @dlt

以前,Azure Databricks 使用 dlt 模块支持 Lakeflow 声明性管道功能。 模块 dlt 已替换为该 pyspark.pipelines 模块。 你仍然可以使用 dlt,但 Databricks 建议使用 pipelines

用于定义数据集的函数

Lakeflow 声明性管道使用 Python 修饰器来定义数据集,比如物化视图和流式处理表。 请参阅 Functions 来定义数据集

API 参考

Python Lakeflow 声明式数据流管道的注意事项

使用 Lakeflow 声明性管道 Python 接口实现管道时,需要注意以下事项:

  • Lakeflow 声明性管道在规划和管道运行期间多次评估定义管道的代码。 定义数据集的 Python 函数应仅包含定义表或视图所需的代码。 数据集定义中包含的任意 Python 逻辑可能会导致意外行为。
  • 不要尝试在数据集定义中实现自定义监视逻辑。 请参阅 使用事件挂钩定义 Lakeflow 声明性管道的自定义监视
  • 用于定义数据集的函数必须返回 Spark 数据帧。 不要在数据集定义中包含与返回的数据帧无关的逻辑。
  • 切勿使用将文件或表保存或写入到 Lakeflow 声明性管道数据集代码中的方法。

不应在 Lakeflow 声明性管道代码中使用的 Apache Spark 操作示例:

  • collect()
  • count()
  • toPandas()
  • save()
  • saveAsTable()
  • start()
  • toTable()