本部分提供了 Lakeflow 声明性管道 Python 编程接口的详细信息。
- 有关概念信息和使用 Python for Lakeflow 声明性管道的概述,请参阅 使用 Python 开发管道代码。
- 有关 SQL 参考,请参阅 Lakeflow 声明性管道 SQL 语言参考。
- 有关特定于配置自动加载程序的详细信息,请参阅什么是自动加载程序?
pipelines 模块概述
Lakeflow 声明性管道 Python 函数在 pyspark.pipelines 模块中定义(导入为dp)。 使用 Python API 实现的管道必须导入此模块:
from pyspark import pipelines as dp
注释
管道模块仅在管道上下文中可用。 它在管道外部运行的 Python 中不可用。 有关编辑管道代码的详细信息,请参阅 使用 Lakeflow 管道编辑器开发和调试 ETL 管道。
Apache Spark 管道
Apache Spark 包括从 Spark 4.1 开始的 声明性管道 ,可通过模块 pyspark.pipelines 使用。 Databricks Runtime 使用其他 API 和集成扩展这些开源功能,以供托管生产使用。
使用开源 pipelines 模块编写的代码在 Azure Databricks 上运行,无需修改。 以下功能不属于 Apache Spark:
dp.create_auto_cdc_flowdp.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 参考
- append_flow
- 创建自动CDC流程
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- 期望值
- materialized_view
- 桌子
- temporary_view
Python Lakeflow 声明式数据管道的注意事项
使用 Lakeflow 声明性管道 Python 接口实现管道时,需要注意以下事项:
- Lakeflow 声明性管道在规划和管道运行期间多次评估定义管道的代码。 定义数据集的 Python 函数应仅包含定义表或视图所需的代码。 数据集定义中包含的任意 Python 逻辑可能会导致意外行为。
- 不要尝试在数据集定义中实现自定义监视逻辑。 请参阅 使用事件挂钩定义 Lakeflow 声明性管道的自定义监视。
- 用于定义数据集的函数必须返回 Spark 数据帧。 不要在数据集定义中包含与返回的数据帧无关的逻辑。
- 切勿使用将文件或表保存或写入到 Lakeflow 声明性管道数据集代码中的方法。
不应在 Lakeflow 声明性管道代码中使用的 Apache Spark 操作示例:
collect()count()toPandas()save()saveAsTable()start()toTable()