第 2 步:创建数据集和架构 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

第 2 步:创建数据集和架构

完成后第 1 步:创建自定义数据集组,您已准备就绪,可创建数据集。数据集是 Amazon Personalize 化数据容器。创建数据集时,您还可以创建数据集架构。一个纲要告诉 Amazon Personalize 化您的数据结构,并允许 Amazon Personalize 化解析数据。

您可以使用 Amazon Personalize 控制台创建数据集,Amazon Command Line Interface(Amazon CLI),或Amazon开发工具包。有关不同类型的数据集以及数据集和架构要求的信息,请参阅数据集和架构.

创建数据集和架构(控制台)

如果这是数据集组中的第一个数据集,则第一个数据集类型将为交互数据集。要在控制台中创建交互数据集,请指定数据集名称,然后在中指定 JSON 架构Avro 格式. 如果它不是此数据集组中的第一个数据集,请选择数据集类型,然后指定名称和架构。

有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构.

注意

如果你刚完成第 1 步:创建自定义数据集组而且你已经在用户项交互页面上,跳至本过程的步骤 4。

创建数据集和架构

  1. 打开 Amazon 个性化控制台,请访问https://console.aws.amazon.com/personalize/home然后登录您的账户。

  2. 在存储库的数据集组页面上,选择您在其中创建的数据集组第 1 步:创建自定义数据集组. 这将显示数据集组控制面板.

  3. 上传数据集部分,对于要导入的数据集类型(Amazon Personalize 化数据集包括互动、用户或项目),请选择导入. 这些区域有:配置 < dataset type >此时将显示页面。

  4. In数据集详情,对于数据集名称中,为您的数据集指定一个名称。

  5. In详细架构,对于架构选择,可以选择现有架构或选择创建新架构.

  6. 如果你正在创建一个新的架构,架构定义中,粘贴与您的数据匹配的模式 JSON 中。使用中找到的示例数据集和架构作为指南。

  7. 对于 New schema name (新架构名称),为新架构指定一个名称。

  8. 选择下一步然后按照中的说明操作 第 3 步:导入数据导入数据。

创建数据集和架构 (Amazon CLI)

使用Amazon CLI,您首先在中定义架构Avro 格式然 Amazon Personalize 用CreateSchemaoperation. 然后,使用创建数据集CreateDatasetoperation. 有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构.

创建架构和数据集

  1. 以 Avro 格式创建架构文件并将其保存为 JSON 文件。此文件应基于您正在创建的数据集类型,例如交互组件。

    模式必须与数据中的列和架构匹配name必须与 Amazon Personalize ation 识别的三种类型的数据集之一匹配。以下是最小交互组件数据集架构的示例。有关更多示例,请参阅 数据集和架构

    { "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" }
  2. 通过运行以下命令,在 Amazon Personalize ation 中创建架构。ReplaceschemaName将替换为架构的名称,并将其替换为架构file://SchemaName.json将包含您在上一步中创建的 JSON 文件的位置。此示例将该文件显示为属于当前文件夹。有关该 API 的更多信息,请参阅CreateSchema

    aws personalize create-schema \ --name SchemaName \ --schema file://SchemaName.json

    屏幕上随即显示架构 Amazon 资源名称 (ARN),如以下示例所示:

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/SchemaName" }
  3. 通过运行以下命令来创建一个空数据集。提供来自的数据集组 Amazon 资源名称 (ARN)创建数据集组 (Amazon CLI)以及上一步中的架构 ARN。dataset-type 必须与上一个步骤中的架构 name 匹配。有关该 API 的更多信息,请参阅CreateDataset

    aws personalize create-dataset \ --name Dataset Name \ --dataset-group-arn Dataset Group ARN \ --dataset-type Dataset Type \ --schema-arn Schema Arn

    此时将显示数据集 ARN,如以下示例所示。

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetName/INTERACTIONS" }
  4. 记下数据集 ARN 以备将来使用。创建数据集后,您就可以导入训练数据了。请参阅 第 3 步:导入数据

创建数据集和架构 (Amazon开发工具包)

使用AmazonSDK,你首先在中定义架构Avro 格式然 Amazon Personalize 用CreateSchemaoperation. 然后,使用创建数据集CreateDatasetoperation. 有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构.

创建架构和数据集

  1. 以 Avro 格式创建架构文件,然后将其保存为 JSON 文件在工作目录中。

    模式必须与数据中的列和架构匹配name必须与 Amazon Personalize ation 识别的三种类型的数据集之一匹配。以下是最小交互组件数据集架构的示例。有关更多示例,请参阅 数据集和架构

    { "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" }
  2. 使用创建架构CreateSchemaAPI 操作。

    SDK for Python (Boto3)

    使用以下命令:create_schema创建架构的方法。Replaceschema name用你的架构的名称。

    import boto3 personalize = boto3.client('personalize') with open('schemaFile.json') as f: createSchemaResponse = personalize.create_schema( name = 'schema name', schema = f.read() ) schema_arn = createSchemaResponse['schemaArn'] print('Schema ARN:' + schema_arn )
    SDK for Java 2.x

    使用以下命令:createSchema创建架构的方法。将以下内容作为参数传递:个性化客户端、架构的名称以及模式 JSON 文件的文件路径。

    public static String createSchema(PersonalizeClient personalizeClient, String schemaName, String filePath) { String schema = null; try { schema = new String(Files.readAllBytes(Paths.get(filePath))); } catch (IOException e) { System.out.println(e.getMessage()); } try { CreateSchemaRequest createSchemaRequest = CreateSchemaRequest.builder() .name(schemaName) .schema(schema) .build(); String schemaArn = personalizeClient.createSchema(createSchemaRequest).schemaArn(); System.out.println("Schema arn: " + schemaArn); return schemaArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

    Amazon Personalize ation 将返回新架构的 ARN。记下它是因为您在下一个步骤中需要使用此值。

  3. 使用创建数据集CreateDatasetoperation. 有关不同类型的数据集的信息,请参阅数据集和架构.

    SDK for Python (Boto3)

    使用以下命令:create_dataset创建 Amazon 个性化数据集的方法。指定datasetGroupArn返回创建数据集组 (Amazon开发工具包). 使用schemaArn创建于上一步中的步骤。Replacedataset type使用您要上传的数据集类型(交互、用户或项目)。

    import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset( name = 'datase_name', schemaArn = 'schema_arn', datasetGroupArn = 'dataset_group_arn', datasetType = 'dataset_type' ) print ('Dataset Arn: ' + response['datasetArn'])
    SDK for Java 2.x

    使用以下命令:createDataset创建 Amazon 个性化数据集的方法。将以下内容作为参数传递:个人化客户端、数据集的名称、schemaArn在上一步中创建的数据集组 ARN 和数据集类型(交互、用户或项目)。

    public static String createDataset(PersonalizeClient personalizeClient, String datasetName, String datasetGroupArn, String datasetType, String schemaArn) { try { CreateDatasetRequest request = CreateDatasetRequest.builder() .name(datasetName) .datasetGroupArn(datasetGroupArn) .datasetType(datasetType) .schemaArn(schemaArn).build(); String datasetArn = personalizeClient.createDataset(request).datasetArn(); System.out.println("Dataset " + datasetName + " created. Dataset ARN: " + datasetArn); return datasetArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

    创建数据集后,您就可以导入训练数据了。请参阅 第 3 步:导入数据