

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自定义数据源
<a name="feature-store-feature-processor-data-sources-custom"></a>

在本页上，我们将介绍如何创建自定义数据源类并展示一些用法示例。对于自定义数据源，您可以使用提供的适用于 Python 的 SageMaker AI SDK (Boto3)，就像使用亚马逊 SageMaker 功能商店提供的 APIs 数据源一样。

要使用自定义数据源通过特征处理将数据转换并摄取到特征组中，需要使用以下类成员和函数来扩展 `PySparkDataSource` 类。
+ `data_source_name` (str)：数据源的任意名称。例如，Amazon Redshift、Snowflake 或 Glue Catalog ARN。
+ `data_source_unique_id` (str)：表示正在访问的特定资源的唯一标识符。例如，表名、DDB 表 ARN、Amazon S3 前缀。自定义数据源中所有使用相同 `data_source_unique_id` 的情况都将关联到世系视图中的同一数据源。世系包括有关特征处理工作流的执行代码、使用的数据源以及将它们摄取到特征组或特征的方式的信息。有关在 **Studio** 中查看特征组任务流水线的信息，请参阅 [从管理控制台查看任务流水线](feature-store-use-with-studio.md#feature-store-view-feature-processor-pipeline-lineage-studio)。
+ `read_data` (func)：一种用于连接特征处理器的方法。返回一个 Spark 数据框。有关示例，请参阅[自定义数据源示例](feature-store-feature-processor-data-sources-custom-examples.md)。

`data_source_name` 和 `data_source_unique_id` 都用于唯一标识您的世系实体。以下是名为 `CustomDataSource` 的自定义数据源类的示例。

```
from sagemaker.feature_store.feature_processor import PySparkDataSource
from pyspark.sql import DataFrame

class CustomDataSource(PySparkDataSource):
    
    data_source_name = "custom-data-source-name"
    data_source_unique_id = "custom-data-source-id"
    
    def read_data(self, parameter, spark) -> DataFrame:
        your own code here to read data into a Spark dataframe
        return dataframe
```