【问题标题】:aws personalize schema modificationaws 个性化架构修改
【发布时间】:2020-07-10 08:31:42
【问题描述】:

我正在学习 aws-pesonalize 而不是这个架构字段

{
 "type": "record",
 "name": "Interactions",
 "namespace": "com.amazonaws.personalize.schema",
 "fields": [
 {
 "name": "USER_ID",
 "type": "string"
 },
 {
 "name": "ITEM_ID",
 "type": "string"
 },
 {
 "name": "TIMESTAMP",
 "type": "long"
 }
 ],
 "version": "1.0"
}

我想删除一些字段并添加新字段,但不知道该怎么做。有什么办法可以做到吗?

【问题讨论】:

    标签: python amazon-web-services amazon-s3 recommendation-engine amazon-personalize


    【解决方案1】:

    来自Amazon documentation,建议你看看。

    Amazon Personalize 可识别三种类型的历史数据集。每种类型都有一个关联的架构,其名称键的值与数据集类型匹配。这三种类型是:

    • 用户 – 此数据集旨在提供有关您的用户的元数据。 这可能包括年龄、性别或忠诚度等信息 会员资格,这可能是个性化的重要信号 系统。
    • Items – 此数据集旨在提供有关 你的物品。这可能包括价格、SKU 类型、 或可用性。
    • Interactions – 此数据集旨在提供用户和项目之间的历史交互数据。它还可以提供有关用户浏览上下文的元数据,例如他们的位置或设备(移动设备、平板电脑、台式机等)。

    [...]

    在将数据集添加到 Amazon Personalize 之前,您必须为该数据集定义一个架构。每种数据集类型都有特定的要求。 Amazon Personalize 中的架构以 Avro 格式定义。如需更多信息,请参阅Apache Avro

    【讨论】:

    • 感谢您的回复,我明白了,是否有任何教程或类似的东西,我可以从中了解如何为 aws-personalize 创建具有不同字段的全新架构。
    【解决方案2】:

    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_IDITEM_IDTIMESTAMP 字段/列。命名字段/列时,惯例是对架构中的字段名称和 CSV 中的列名称使用常量大小写(即用“_”分隔单词的大写字母)。 Personalize 会自动将 PutEvents/PutItems/PutUsers API 调用中的驼峰式字段名称映射到架构中对应的常量大小写。例如,eventType 会自动映射到 EVENT_TYPE。有关详细信息,请参阅datasets and schemas 上的文档。在aws-samples/amazon-personalize-samples GitHub 存储库和Personalize blogs 中也有几个不同模式的示例。

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 1970-01-01
      • 2019-04-06
      • 2018-01-28
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      相关资源
      最近更新 更多