特征工程和工作区特征存储 Python API
本页提供了 Databricks 特征工程和 Databricks 工作区特征存储中的 Python API 文档链接,以及有关客户端包 databricks-feature-engineering
和 databricks-feature-store
的信息的链接。
注意
自版本 0.17.0 起,databricks-feature-store
已弃用。 此包中的所有现有模块现可在 databricks-feature-engineering
版本 0.2.0 及更高版本中获得。 有关迁移到 databricks-feature-engineering
的信息,请参阅迁移到 databricks-feature-engineering。
兼容性矩阵
应使用的包和客户端取决于功能表所在的位置和正在运行的 Databricks Runtime ML 版本,如下表所示。
若要标识 Databricks Runtime ML 版本内置的包版本,请参阅特征工程兼容性矩阵。
Databricks Runtime 版本 | 对于功能表 | 使用包 | 使用 Python 客户端 |
---|---|---|---|
Databricks Runtime 14.3 ML 和更高版本 | Unity Catalog | databricks-feature-engineering |
FeatureEngineeringClient |
Databricks Runtime 14.3 ML 和更高版本 | 工作区 | databricks-feature-engineering |
FeatureStoreClient |
Databricks Runtime 14.2 ML 和更低版本 | Unity Catalog | databricks-feature-engineering |
FeatureEngineeringClient |
Databricks Runtime 14.2 ML 和更低版本 | 工作区 | databricks-feature-store |
FeatureStoreClient |
发行说明
请参阅 Databricks 特征工程和旧版工作区特征存储的发行说明。
特征工程 Python API 参考
请参阅特征工程 Python API 参考。
工作区特征存储 Python API 参考(已弃用)
注意
- 自版本 0.17.0 起,
databricks-feature-store
已弃用。 此包中的所有现有模块现可在databricks-feature-engineering
版本 0.2.0 及更高版本中获得。
对于 databricks-feature-store
v0.17.0,请参阅特征工程 Python API 参考中的 Databricks FeatureStoreClient
,以了解最新的工作区功能存储 API 参考。
对于 v0.16.3 和更低版本,请使用表中的链接下载或显示功能存储 Python API 参考。 要确定 Databricks Runtime ML 版本的预安装版本,请参阅兼容性矩阵。
版本 | 下载 PDF | 联机 API 参考 |
---|---|---|
v0.3.5 到 v0.16.3 | 特征存储 Python API 0.16.3 参考 PDF | 联机 API 参考 |
v0.3.5 及更低版本 | 特征存储 Python API 0.3.5 参考 PDF | 联机 API 参考不可用 |
Python 包
本部分介绍如何安装 Python 包以使用 Databricks 特征工程和 Databricks 工作区特征存储。
特征工程
注意
- 从版本 0.2.0 起,
databricks-feature-engineering
包含用于在 Unity Catalog 和工作区特征存储中使用功能表的模块。 低于版本 0.2.0 的databricks-feature-engineering
仅适用 Unity Catalog 中的功能表。
Databricks 特征工程 API 可通过 Python 客户端包 databricks-feature-engineering
获得。 客户端在 PyPI 上可用,并预安装在 Databricks Runtime 13.3 LTS ML 及更高版本中。
有关哪个客户端版本对应于哪个运行时版本的参考,请参阅兼容性矩阵。
若要在 Databricks Runtime 中安装客户端,请运行以下命令:
%pip install databricks-feature-engineering
若要在本地 Python 环境中安装客户端,请运行以下命令:
pip install databricks-feature-engineering
工作区特征存储(已弃用)
注意
- 自版本 0.17.0 起,
databricks-feature-store
已弃用。 此包中的所有现有模块现已在版本 0.2.0 及更高版本的databricks-feature-engineering
中提供。 - 有关详细信息,请参阅迁移到 databricks-feature-engineering。
Databricks 特征存储 API 可通过 Python 客户端包 databricks-feature-store
获得。 客户端在 PyPI 上可用,并预安装在用于机器学习的 Databricks Runtime 中。 有关哪个运行时包括哪些客户端版本的参考,请参阅兼容性矩阵。
若要在 Databricks Runtime 中安装客户端,请运行以下命令:
%pip install databricks-feature-store
若要在本地 Python 环境中安装客户端,请运行以下命令:
pip install databricks-feature-store
迁移到 databricks-feature-engineering
若要安装 databricks-feature-engineering
包,请使用 pip install databricks-feature-engineering
而不是 pip install databricks-feature-store
。 databricks-feature-store
中的所有模块都已移至 databricks-feature-engineering
,因此无需更改任何代码。 安装 databricks-feature-engineering
后,from databricks.feature_store import FeatureStoreClient
等导入语句将继续生效。
要在 Unity Catalog 中使用特征表,请使用 FeatureEngineeringClient
。 要使用工作区特征存储,必须使用 FeatureStoreClient
。
支持的方案
在 Databricks(包括 Databricks Runtime 和用于机器学习的 Databricks Runtime)上,你可以执行以下操作:
- 创建、读取和写入功能表。
- 基于功能数据对模型进行训练和评分。
- 将功能表发布到在线应用商店,以便提供实时服务。
从本地环境或 Databricks 的外部环境中,你可以执行以下操作:
- 使用本地 IDE 支持开发代码。
- 使用模拟框架进行单元测试。
- 编写在 Databricks 上运行的集成测试。
限制
客户端库只能在 Databricks 上运行,包括 Databricks Runtime 和用于机器学习的 Databricks Runtime。 它不支持从本地环境或 Databricks 以外的环境调用 Unity Catalog 或特征存储 API 中的特征工程。
使用客户端进行单元测试
可以在 Unity Catalog 客户端或特征存储客户端本地安装特征工程,以帮助运行单元测试。
例如,要验证方法 update_customer_features
是否正确调用 FeatureEngineeringClient.write_table
(或对于工作区特征存储 FeatureStoreClient.write_table
),可以编写:
from unittest.mock import MagicMock, patch
from my_feature_update_module import update_customer_features
from databricks.feature_engineering import FeatureEngineeringClient
@patch.object(FeatureEngineeringClient, "write_table")
@patch("my_feature_update_module.compute_customer_features")
def test_something(compute_customer_features, mock_write_table):
customer_features_df = MagicMock()
compute_customer_features.return_value = customer_features_df
update_customer_features() # Function being tested
mock_write_table.assert_called_once_with(
name='ml.recommender_system.customer_features',
df=customer_features_df,
mode='merge'
)
使用客户端进行集成测试
可以在 Databricks 上使用 Unity Catalog 客户端或特征存储客户端中的特征工程运行集成测试。