针对不同数据集重用数据流 - Amazon SageMaker

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

针对不同数据集重用数据流

对于 Amazon Simple Storage Service (Amazon S3) 数据源,您可以创建和使用参数。参数即保存在 Data Wrangler 流中的变量。其值可以是数据源 Amazon S3 路径的任何部分。使用参数,可以快速更改导入 Data Wrangler 流或导出至处理作业的数据。您也可以使用参数,选择和导入数据的特定子集。

创建 Data Wrangler 流后,您可能已经在转换的数据上训练了一个模型。对于架构相同的数据集,可以使用参数,对不同的数据集应用相同的转换并训练不同的模型。可以使用新的数据集对模型进行推理,也可以用它们重新训练模型。

通常,参数具有以下属性:

  • 名称 – 为参数指定的名称

  • 类型 – 参数所表示的值的类型

  • 默认值 – 未指定新值时参数的值

注意

日期时间参数在用作默认值时,具有时间范围属性。

Data Wrangler 使用大括号 {{}} 表示参数正用在 Amazon S3 路径中。例如,你可以有URL这样的s3://amzn-s3-demo-bucket1/{{example_parameter_name}}/example-dataset.csv

您可以在编辑导入的 Amazon S3 数据源时创建参数。可以将文件路径的任何部分设置为参数值。可以将参数值设置为值或模式。以下是 Data Wrangler 流中可用的参数值类型:

  • 数字

  • String

  • 模式

  • 日期时间

注意

对于 Amazon S3 路径中存储桶的名称,不能创建模式参数或日期时间参数。

必须设置一个数字作为数字参数的默认值。在编辑参数或启动处理作业时,可以将参数的值更改为其他数字。例如,在 S3 路径 s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv 中,可以创建名为 number_parameter 的数字参数代替 1。S3 路径现在显示为 s3://amzn-s3-demo-bucket/example-prefix/example-file-{{number_parameter}}.csv。路径继续指向 example-file-1.csv 数据集,直到您更改参数的值。如果将 number_parameter 的值更改为 2,则现在路径为 s3://amzn-s3-demo-bucket/example-prefix/example-file-2.csv。如果您已将文件 example-file-2.csv 上传到该 Amazon S3 位置,那么可以将此文件导入 Data Wrangler 中。

字符串参数存储一个字符串作为其默认值。例如,在 S3 路径 s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv 中,可以创建名为 string_parameter 的字符串参数代替文件名 example-file-1.csv。路径现在显示为 s3://amzn-s3-demo-bucket/example-prefix/{{string_parameter}}。它会继续匹配 s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv,直到您更改参数的值。

您可以使用整个 Amazon S3 路径创建字符串参数,而不必将文件名指定为字符串参数。您可以在字符串参数中指定来自任何 Amazon S3 位置的数据集。

模式参数存储正则表达式 (PythonREGEX) 字符串作为其默认值。您可以使用模式参数同时导入多个数据文件。要一次导入多个对象,可指定与要导入的 Amazon S3 对象相匹配的参数值。

您还可以为以下数据集创建模式参数:

  • s3://amzn-s3-demo-bucket1/example-prefix/example-file-1.csv

  • s3://amzn-s3-demo-bucket1/example-prefix/example-file-2.csv

  • s3://amzn-s3-demo-bucket1/example-prefix/example-file-10.csv

  • s3://amzn-s3-demo-bucket/example-prefix/example-file-0123.csv

对于 s3://amzn-s3-demo-bucket1/example-prefix/example-file-1.csv,您可以创建模式参数代替 1,并将该参数的默认值设置为 \d+。该\d+REGEX字符串匹配任意一个或多个十进制数字。如果创建名为 pattern_parameter 的模式参数,则 S3 路径显示为 s3://amzn-s3-demo-bucket1/example-prefix/example-file-{{pattern_parameter}}.csv

您还可以使用模式参数来匹配存储桶中的所有CSV对象。要匹配存储桶中的所有对象,可使用默认值 .* 创建模式参数,并将路径设置为 s3://amzn-s3-demo-bucket/{{pattern_parameter}}.csv.* 字符可匹配路径中的任何字符串字符。

s3://amzn-s3-demo-bucket/{{pattern_parameter}}.csv 路径可以匹配以下数据集。

  • example-file-1.csv

  • other-example-file.csv

  • example-file-a.csv

日期时间参数存储包含以下信息的格式:

  • 用于解析 Amazon S3 路径中字符串的格式。

  • 用于限制匹配的日期时间值的相对时间范围

例如,在 Amazon S3 文件路径 s3://amzn-s3-demo-bucket/2020/01/01/example-dataset.csv 中,2020/01/01 用 year/month/day 的格式表示日期时间。您可以将参数的时间范围设置为间隔,如 1 years24 hours。间隔 1 years 可匹配日期时间介于当前时间与当前时间前整一年的时间之间的所有 S3 路径。当前时间即开始导出对数据所做转换的时间。有关导出数据的更多信息,请参阅导出。如果当前日期为 2022/01/01,时间范围为 1 years,那么 S3 路径可匹配如下数据集:

  • s3://amzn-s3-demo-bucket/2021/01/01/example-dataset.csv

  • s3://amzn-s3-demo-bucket/2021/06/30/example-dataset.csv

  • s3://amzn-s3-demo-bucket/2021/12/31/example-dataset.csv

相对时间范围内的日期时间值会随着时间的流逝而变化。位于相对时间范围内的 S3 路径也可能有所不同。

对于 Amazon S3 文件路径 s3://amzn-s3-demo-bucket1/20200101/example-dataset.csv20220101 是一个可以成为日期时间参数的路径示例。

要查看您在 Data Wrangler 流中创建的所有参数的表,可在包含 Amazon S3 路径的文本框右侧选择“{{}}”。如果不再需要创建的参数,可以编辑或删除。要编辑或删除参数,可选择参数右侧的图标。

重要

在删除参数之前,请确保没有在 Data Wrangler 流中的任何地方使用过该参数。删除仍在流中的参数会导致错误。

您可以为 Data Wrangler 流的任何步骤创建参数。可以编辑或删除创建的参数。如果要对与使用案例不再相关的数据应用转换,则可修改参数的值。修改参数的值会更改正在导入的数据。

以下各部分提供了有关使用参数的更多示例和一般指导。您可以通过这些部分来了解最适合您的参数。

注意

以下各部分包含使用 Data Wrangler 接口覆盖参数并创建处理作业的过程。

您也可以使用以下过程覆盖参数。

要导出 Data Wrangler 流并覆盖参数的值,可执行以下操作。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择要将数据导出到的位置。

  4. parameter_overrides 下,为创建的参数指定不同的值。

  5. 运行 Jupyter 笔记本。

您可以使用参数将 Data Wrangler 流程中的转换应用于与 Amazon S3 路径中的模式相匹配的不同文件。URI这有助于您指定 S3 存储桶中要以高特定性进行转换的文件。例如,您可能有一个路径为 s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv 的数据集。名为 example-dataset.csv 的不同数据集存储在许多不同的示例前缀下。前缀也可以按顺序编号。您可以在 Amazon S3 中为数字创建模式URI。模式参数REGEX用于选择任意数量的与表达式模式相匹配的文件。以下是可能有用的REGEX模式:

  • .* – 匹配零个或多个任意字符,换行符除外

  • .+ – 匹配一个或多个任意字符,换行符除外

  • \d+ – 匹配一个或多个任意十进制数字

  • \w+ – 匹配一个或多个任意字母数字字符

  • [abc-_]{2,4} – 匹配由方括号内提供的一组字符组成的 2、3 或 4 个字符的字符串

  • abc|def – 匹配一个或另一个字符串。例如,此操作匹配 abcdef

您可以用值为 \d+ 的单个参数,替换以下路径中的每个数字。

  • s3://amzn-s3-demo-bucket1/example-prefix-3/example-prefix-4/example-prefix-5/example-dataset.csv

  • s3://amzn-s3-demo-bucket1/example-prefix-8/example-prefix-12/example-prefix-13/example-dataset.csv

  • s3://amzn-s3-demo-bucket1/example-prefix-4/example-prefix-9/example-prefix-137/example-dataset.csv

以下过程为路径为 s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv 的数据集创建模式参数。

要创建模式参数,可执行以下操作。

  1. 在导入的数据集旁边,选择编辑数据集

  2. 突出显示 example-prefix-0 中的 0

  3. 为以下字段指定值:

    • 名称 – 参数的名称

    • 类型模式

    • \ d+ 正则表达式,对应于一个或多个数字

  4. 选择创建

  5. 将 S3 URI 路径2中的1和替换为参数。路径应采用以下格式:s3://amzn-s3-demo-bucket1/example-prefix-{{example_parameter_name}}/example-prefix-{{example_parameter_name}}/example-prefix-{{example_parameter_name}}/example-dataset.csv

以下是创建模式参数的一般过程。

  1. 导航至 Data Wrangler 流。

  2. 在导入的数据集旁边,选择编辑数据集

  3. 突出显示URI您用作模式参数值的部分。

  4. 选择创建自定义参数

  5. 为以下字段指定值:

    • 名称 – 参数的名称

    • 类型模式

    • – 包含要存储的模式的正则表达式。

  6. 选择创建

您可以使用参数,将 Data Wrangler 流中的转换应用于具有相似路径的不同文件。例如,您可能有一个路径为 s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv 的数据集。

您可能已将 Data Wrangler 流中的转换应用于 example-prefix-1 下的数据集。您可能想对 example-prefix-10example-prefix-20 下的 example-dataset.csv 应用相同的转换。

您可以创建一个参数以存储值 1。如果要将转换应用于不同的数据集,那么可以创建处理作业,用不同的值替换参数的值。当您要将 Data Wrangler 流中的转换应用于新数据时,此参数充当占位符供您更改。在创建 Data Wrangler 处理作业时,您可以覆盖参数的值,以便将 Data Wrangler 流中的转换应用于不同的数据集。

可使用以下过程,为 s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv 创建数字参数。

要为前面的 S3 URI 路径创建参数,请执行以下操作。

  1. 导航至 Data Wrangler 流。

  2. 在导入的数据集旁边,选择编辑数据集

  3. example-prefix-number 的示例前缀中突出显示数字。

  4. 选择创建自定义参数

  5. 对于名称,指定参数的名称。

  6. 对于类型,选择整数

  7. 对于,指定数字。

  8. 重复此过程,为其余数字创建参数。

创建参数后,将转换应用于数据集并为其创建目标节点。有关目标节点的更多信息,请参阅导出

可使用以下过程,将 Data Wrangler 流中的转换应用于不同的时间范围。假定您已为流中的转换创建了目标节点。

要更改 Data Wrangler 处理作业中数字参数的值,可执行以下操作。

  1. 在 Data Wrangler 流中,选择创建作业

  2. 仅选择包含要对具有日期时间参数的数据集进行的转换的目标节点。

  3. 选择配置作业

  4. 选择参数

  5. 选择之前创建的参数的名称。

  6. 更改参数的值。

  7. 对其他参数重复此过程。

  8. 选择运行

您可以使用参数,将 Data Wrangler 流中的转换应用于具有相似路径的不同文件。例如,您可能有一个路径为 s3://amzn-s3-demo-bucket1/example-prefix/example-dataset.csv 的数据集。

您可能已将 Data Wrangler 流中的转换应用于 example-prefix 下的数据集。您可能想对 another-example-prefixexample-prefix-20 下的 example-dataset.csv 应用相同的转换。

您可以创建一个参数以存储值 example-prefix。如果要将转换应用于不同的数据集,那么可以创建处理作业,用不同的值替换参数的值。当您要将 Data Wrangler 流中的转换应用于新数据时,此参数充当占位符供您更改。在创建 Data Wrangler 处理作业时,您可以覆盖参数的值,以便将 Data Wrangler 流中的转换应用于不同的数据集。

可使用以下过程为 s3://amzn-s3-demo-bucket1/example-prefix/example-dataset.csv 创建字符串参数。

要为前面的 S3 URI 路径创建参数,请执行以下操作。

  1. 导航至 Data Wrangler 流。

  2. 在导入的数据集旁边,选择编辑数据集

  3. 突出显示示例前缀 example-prefix

  4. 选择创建自定义参数

  5. 对于名称,指定参数的名称。

  6. 对于类型,选择字符串

  7. 对于,指定前缀。

创建参数后,将转换应用于数据集并为其创建目标节点。有关目标节点的更多信息,请参阅导出

可使用以下过程,将 Data Wrangler 流中的转换应用于不同的时间范围。假定您已为流中的转换创建了目标节点。

要更改 Data Wrangler 处理作业中数字参数的值,可执行以下操作:

  1. 在 Data Wrangler 流中,选择创建作业

  2. 仅选择包含要对具有日期时间参数的数据集进行的转换的目标节点。

  3. 选择配置作业

  4. 选择参数

  5. 选择之前创建的参数的名称。

  6. 更改参数的值。

  7. 对其他参数重复此过程。

  8. 选择运行

可使用日期时间参数,将 Data Wrangler 流中的转换应用于不同的时间范围。突出显示 Amazon S3 URI 中带有时间戳的部分,并为其创建参数。创建参数时,可以指定从当前时间到过去时间的时间范围。例如,您的Amazon S3 URI 可能如下所示:s3://amzn-s3-demo-bucket1/example-prefix/2022/05/15/example-dataset.csv。您可以将 2022/05/15 另存为日期时间参数。如果指定一年作为时间范围,那么时间范围包括从运行具日期时间参数的处理作业的时间到整一年前的时间。如果运行处理作业的时间是 2022 年 9 月 6 日或 2022/09/06,则时间范围可能包括以下:

  • s3://amzn-s3-demo-bucket1/example-prefix/2022/03/15/example-dataset.csv

  • s3://amzn-s3-demo-bucket1/example-prefix/2022/01/08/example-dataset.csv

  • s3://amzn-s3-demo-bucket1/example-prefix/2022/07/31/example-dataset.csv

  • s3://amzn-s3-demo-bucket1/example-prefix/2021/09/07/example-dataset.csv

Data Wrangler 流中的转换适用于上述所有前缀。更改处理作业中的参数值,不会改变 Data Wrangler 流中的参数值。要将转换应用于不同时间范围内的数据集,可执行以下操作:

  1. 创建一个包含要使用的所有转换的目标节点。

  2. 创建 Data Wrangler 作业。

  3. 配置作业,为参数使用不同的时间范围。更改处理作业中的参数值,不会改变 Data Wrangler 流中的参数值。

有关目标节点和 Data Wrangler 作业的更多信息,请参阅导出

以下过程为 Amazon S3 路径 s3://amzn-s3-demo-bucket1/example-prefix/2022/05/15/example-dataset.csv 创建日期时间参数。

要为前面的 S3 URI 路径创建日期时间参数,请执行以下操作。

  1. 导航至 Data Wrangler 流。

  2. 在导入的数据集旁边,选择编辑数据集

  3. 突出显示URI您用作日期时间参数值的部分。

  4. 选择创建自定义参数

  5. 对于名称,指定参数的名称。

  6. 对于类型,选择日期时间

    注意

    默认情况下,Data Wrangler 会选择预定义,提供一个下拉菜单供您选择日期格式。但是,您所使用的时间戳格式可能不可用。您可以选择自定义并手动指定时间戳格式,而不必使用预定义作为默认选项。

  7. 对于日期格式,打开预定义后的下拉菜单,然后选择 yyyy/MM/dd。格式 yyyy/MM/dd 对应于时间戳的年/月/日。

  8. 对于时区,选择时区。

    注意

    您正在分析的数据的时间戳可能产生自与您所在时区不同的时区。请确保您选择的时区与数据的时区相匹配。

  9. 对于时间范围,指定参数的时间范围。

  10. (可选)输入描述文字以说明您是如何使用参数的。

  11. 选择创建

创建日期时间参数后,将转换应用于数据集并为其创建目标节点。有关目标节点的更多信息,请参阅导出

可使用以下过程,将 Data Wrangler 流中的转换应用于不同的时间范围。假定您已为流中的转换创建了目标节点。

要更改 Data Wrangler 处理作业中日期时间参数的值,可执行以下操作:

  1. 在 Data Wrangler 流中,选择创建作业

  2. 仅选择包含要对具有日期时间参数的数据集进行的转换的目标节点。

  3. 选择配置作业

  4. 选择参数

  5. 选择之前创建的日期时间参数的名称。

  6. 对于时间范围,更改数据集的时间范围。

  7. 选择运行