特征工程和工作区特征存储 Python API

本页提供了 Databricks 特征工程和 Databricks 工作区特征存储中的 Python API 文档链接,以及有关客户端包 databricks-feature-engineeringdatabricks-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-storedatabricks-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 客户端或特征存储客户端中的特征工程运行集成测试。