分类器 API - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

分类器 API

分类器 API 介绍 AWS Glue 分类器数据类型,还包括用于创建、删除、更新和列出分类器的 API。

数据类型

Classifier 结构

分类器会在爬网任务期间触发。分类器检查给定文件的格式是否可以处理。如果可以处理,分类器将以与该数据格式匹配的 StructType 对象的形式创建一个模式。

您可以使用 AWS Glue 提供的标准分类器,或自行编写分类器,以便更好地对数据源进行分类和指定要用于它们的合适架构。分类器可以是 grok 分类器、XML 分类器、JSON 分类器或自定义 CSV 分类器,它由 Classifier 对象中的字段之一指定。

字段

  • GrokClassifier – 一个 GrokClassifier 对象。

    使用 grok 的分类器。

  • XMLClassifier – 一个 XMLClassifier 对象。

    XML 内容的分类器。

  • JsonClassifier – 一个 JsonClassifier 对象。

    JSON 内容的分类器。

  • CsvClassifier – 一个 CsvClassifier 对象。

    逗号分隔值 (CSV) 的分类器。

GrokClassifier 结构

使用 grok 模式的分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • Classification必需:UTF-8 字符串。

    与分类器匹配的数据格式 (例如,Twitter、JSON、Omniture 日志等) 的标识符。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

    上次更新此分类器的时间。

  • Version – 数字 (long)。

    此分类器的版本。

  • GrokPattern必需:UTF-8 字符串,长度不少于 1 个字节或超过 2048 个字节,与 A Logstash Grok string pattern 匹配。

    由此分类器应用于数据存储的 grok 模式。有关更多信息,请参阅编写自定义分类器中的“内置模式”。

  • CustomPatterns – UTF-8 字符串,不超过 16000 个字节,与 URI address multi-line string pattern 匹配。

    由此分类器定义的可选自定义 grok 模式。有关更多信息,请参阅编写自定义分类器中的“自定义模式”。

XMLClassifier 结构

XML 内容的分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • Classification必需:UTF-8 字符串。

    与分类器匹配的数据格式的标识符。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

    上次更新此分类器的时间。

  • Version – 数字 (long)。

    此分类器的版本。

  • RowTag – UTF-8 字符串。

    XML 标记,用于指定包含正在分析的 XML 文档中的每个记录的元素。无法识别自结束元素(以 /> 结束)。可以分析仅包含属性的空行元素,只要它以结束标记结束 (例如,<row item_a="A" item_b="B"></row> 可以,但 <row item_a="A" item_b="B" /> 不可以)。

JsonClassifier 结构

JSON 内容的分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

    上次更新此分类器的时间。

  • Version – 数字 (long)。

    此分类器的版本。

  • JsonPath必需: UTF-8 字符串。

    一个 JsonPath 字符串,用于定义供分类器分类的 JSON 数据。AWS Glue 支持一部分 JsonPath,如编写 JsonPath 自定义分类器中所述。

CsvClassifier 结构

自定义 CSV 内容的分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

    上次更新此分类器的时间。

  • Version – 数字 (long)。

    此分类器的版本。

  • Delimiter – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示分隔行中每个列条目的内容。

  • QuoteSymbol – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示将内容组合为单个列值的内容。它必须与列分隔符不同。

  • ContainsHeader – UTF-8 字符串(有效值:UNKNOWN | PRESENT | ABSENT)。

    指示 CSV 文件是否包含标头。

  • Header – UTF-8 字符串数组。

    表示列名称的字符串的列表。

  • DisableValueTrimming – 布尔值。

    指定在标识列值类型之前不去除值。默认值是 true.

  • AllowSingleColumn – 布尔值。

    允许处理仅包含一列的文件。

CreateGrokClassifierRequest 结构

为要创建的 CreateClassifier 指定 grok 分类器。

字段

  • Classification必需:UTF-8 字符串。

    与分类器匹配的数据格式 (例如,Twitter、JSON、Omniture 日志、Amazon CloudWatch Logs 等) 的标识符。

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    新分类器的名称。

  • GrokPattern必需:UTF-8 字符串,长度不少于 1 个字节或超过 2048 个字节,与 A Logstash Grok string pattern 匹配。

    此分类器使用的 grok 模式。

  • CustomPatterns – UTF-8 字符串,不超过 16000 个字节,与 URI address multi-line string pattern 匹配。

    此分类器使用的可选自定义 grok 模式。

UpdateGrokClassifierRequest 结构

指定要在传递到 UpdateClassifier 时更新的 grok 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    GrokClassifier 的名称。

  • Classification – UTF-8 字符串。

    与分类器匹配的数据格式 (例如,Twitter、JSON、Omniture 日志、Amazon CloudWatch Logs 等) 的标识符。

  • GrokPattern – UTF-8 字符串,长度不少于 1 个字节或超过 2048 个字节,与 A Logstash Grok string pattern 匹配。

    此分类器使用的 grok 模式。

  • CustomPatterns – UTF-8 字符串,不超过 16000 个字节,与 URI address multi-line string pattern 匹配。

    此分类器使用的可选自定义 grok 模式。

CreateXMLClassifierRequest 结构

为要创建的 CreateClassifier 指定 XML 分类器。

字段

  • Classification必需:UTF-8 字符串。

    与分类器匹配的数据格式的标识符。

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • RowTag – UTF-8 字符串。

    XML 标记,用于指定包含正在分析的 XML 文档中的每个记录的元素。无法识别自结束元素(以 /> 结束)。可以分析仅包含属性的空行元素,只要它以结束标记结束 (例如,<row item_a="A" item_b="B"></row> 可以,但 <row item_a="A" item_b="B" /> 不可以)。

UpdateXMLClassifierRequest 结构

指定要更新的 XML 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • Classification – UTF-8 字符串。

    与分类器匹配的数据格式的标识符。

  • RowTag – UTF-8 字符串。

    XML 标记,用于指定包含正在分析的 XML 文档中的每个记录的元素。请注意,此标签无法识别自结束元素 (由 /> 结束)。可以分析仅包含属性的空行元素,只要它以结束标记结束 (例如,<row item_a="A" item_b="B"></row> 可以,但 <row item_a="A" item_b="B" /> 不可以)。

CreateJsonClassifierRequest 结构

为要创建的 CreateClassifier 指定 JSON 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • JsonPath必需: UTF-8 字符串。

    一个 JsonPath 字符串,用于定义供分类器分类的 JSON 数据。AWS Glue 支持一部分 JsonPath,如编写 JsonPath 自定义分类器中所述。

UpdateJsonClassifierRequest 结构

指定要更新的 JSON 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • JsonPath – UTF-8 字符串。

    一个 JsonPath 字符串,用于定义供分类器分类的 JSON 数据。AWS Glue 支持一部分 JsonPath,如编写 JsonPath 自定义分类器中所述。

CreateCsvClassifierRequest 结构

为要创建的 CreateClassifier 指定自定义 CSV 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • Delimiter – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示分隔行中每个列条目的内容。

  • QuoteSymbol – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示将内容组合为单个列值的内容。必须与列分隔符不同。

  • ContainsHeader – UTF-8 字符串(有效值:UNKNOWN | PRESENT | ABSENT)。

    指示 CSV 文件是否包含标头。

  • Header – UTF-8 字符串数组。

    表示列名称的字符串的列表。

  • DisableValueTrimming – 布尔值。

    指定在标识列值类型之前不去除值。默认值为 true。

  • AllowSingleColumn – 布尔值。

    允许处理仅包含一列的文件。

UpdateCsvClassifierRequest 结构

指定要更新的自定义 CSV 分类器。

字段

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    分类器的名称。

  • Delimiter – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示分隔行中每个列条目的内容。

  • QuoteSymbol – UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #10 匹配。

    一个自定义符号,表示将内容组合为单个列值的内容。它必须与列分隔符不同。

  • ContainsHeader – UTF-8 字符串(有效值:UNKNOWN | PRESENT | ABSENT)。

    指示 CSV 文件是否包含标头。

  • Header – UTF-8 字符串数组。

    表示列名称的字符串的列表。

  • DisableValueTrimming – 布尔值。

    指定在标识列值类型之前不去除值。默认值为 true。

  • AllowSingleColumn – 布尔值。

    允许处理仅包含一列的文件。

操作

CreateClassifier 操作 (Python: create_classifier)

在用户的账户中创建分类器。这可以是 GrokClassifierXMLClassifierJsonClassifierCsvClassifier,具体取决于请求的哪个字段存在。

请求

响应

  • 无响应参数。

错误

  • AlreadyExistsException

  • InvalidInputException

  • OperationTimeoutException

DeleteClassifier 操作 (Python: delete_classifier)

从数据目录中删除分类器。

请求

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要删除的分类器名称。

响应

  • 无响应参数。

错误

  • EntityNotFoundException

  • OperationTimeoutException

GetClassifier 操作 (Python: get_classifier)

按名称检索分类器。

请求

  • Name必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要检索的分类器的名称。

响应

  • Classifier – 一个 分类器 对象。

    请求的分类器。

错误

  • EntityNotFoundException

  • OperationTimeoutException

GetClassifiers 操作 (Python: get_classifiers)

列出数据目录中的所有分类器对象。

请求

  • MaxResults – 数字 (integer),不小于 1 或大于 1000。

    要返回的列表的大小 (可选)。

  • NextToken – UTF-8 字符串。

    一个可选延续令牌。

响应

  • Classifiers分类器 对象的数组。

    请求的分类器对象的列表。

  • NextToken – UTF-8 字符串。

    一个延续令牌。

错误

  • OperationTimeoutException

UpdateClassifier 操作 (Python: update_classifier)

修改现有分类器(GrokClassifierXMLClassifierJsonClassifierCsvClassifier,具体取决于存在的字段)。

请求

响应

  • 无响应参数。

错误

  • InvalidInputException

  • VersionMismatchException

  • EntityNotFoundException

  • OperationTimeoutException