本部分提供了 Lakeflow 声明性管道 Python 编程接口的详细信息。
- 有关概念信息和使用 Python for Lakeflow 声明性管道的概述,请参阅 使用 Python 开发管道代码。
- 有关 SQL 参考,请参阅 Lakeflow 声明性管道 SQL 语言参考。
- 有关特定于配置自动加载程序的详细信息,请参阅什么是自动加载程序?
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()