Personalize 中的模式是不可变的。因此,如果要在现有模式中添加/更改/删除字段,则必须使用使用Apache Avro格式定义的所需模式创建一个新模式。
您可以在创建数据集时或使用CreateSchema API 在 AWS 控制台中创建架构。这是在 Python 中为交互数据集创建模式的示例。
import boto3
import json
personalize = boto3.client('personalize')
interactions_schema = {
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "USER_ID",
"type": "string"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
personalize.create_schema(
name = "your-schema-name-here",
schema = json.dumps(interactions_schema)
)
请注意,每种数据集类型都有必填字段/列。例如,交互数据集类型的每个模式都必须具有USER_ID
、ITEM_ID
和TIMESTAMP
字段/列。命名字段/列时,约定是使用常量大小写(即用“_”分隔单词的大写字母)用于架构中的字段名称和 CSV 中的列名称。Personalize 会自动将 PutEvents/PutItems/PutUsers API 调用中的驼峰式字段名称映射到架构中对应的常量大小写。例如,eventType
自动映射到EVENT_TYPE
. 有关详细信息,请参阅有关数据集和模式的文档。在aws-samples/amazon-personalize-samples GitHub 存储库和个性化博客。