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

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

分类器 API

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

数据类型

Classifier 结构

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

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

Fields

  • GrokClassifier – 一个 GrokClassifier 对象。

    使用 grok 的分类器。

  • XMLClassifier – 一个 XMLClassifier 对象。

    XML 内容的分类器。

  • JsonClassifier – 一个 JsonClassifier 对象。

    JSON 内容的分类器。

  • CsvClassifier – 一个 CsvClassifier 对象。

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

GrokClassifier结构

使用 grok 模式的分类器。

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

  • Classification必填: UTF-8字符串.

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

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

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

  • Version – 数字(长)。

    此分类器的版本。

  • GrokPattern必填: UTF-8字符串,不小于1或大于2048字节,与 A Logstash Grok string pattern.

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

  • CustomPatterns – UTF-8字符串,长度不超过16000字节,匹配 URI address multi-line string pattern.

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

XMLClassifier结构

XML 内容的分类器。

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

  • Classification必填: UTF-8字符串.

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

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

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

  • Version – 数字(长)。

    此分类器的版本。

  • RowTag – UTF-8字符串.

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

JsonClassifier结构

JSON 内容的分类器。

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

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

  • Version – 数字(长)。

    此分类器的版本。

  • JsonPath必填: UTF-8字符串.

    一个 JsonPath 字符串,用于定义供分类器分类的 JSON 数据。AWSGlue支持 JsonPath,如 书写 JsonPath 自定义分类器.

CsvClassifier结构

自定义 CSV 内容的分类器。

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

  • CreationTime – 时间戳。

    注册此分类器的时间。

  • LastUpdated – 时间戳。

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

  • Version – 数字(长)。

    此分类器的版本。

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

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

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

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

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

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

  • Header – 一串UTF-8字符串。

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

  • DisableValueTrimming – 布尔值。

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

  • AllowSingleColumn – 布尔值。

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

CreateGrokClassifierRequest结构

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

Fields

  • Classification必填: UTF-8字符串.

    分类器匹配的数据格式的标识符,例如Twitter、JSON、Omniture日志、Amazon CloudWatch 日志,以此类推。

  • 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 分类器。

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    GrokClassifier 的名称。

  • Classification – UTF-8字符串.

    分类器匹配的数据格式的标识符,例如Twitter、JSON、Omniture日志、Amazon CloudWatch 日志,以此类推。

  • 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 分类器。

Fields

  • 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 分类器。

Fields

  • 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 分类器。

Fields

UpdateJsonClassifierRequest结构

指定要更新的 JSON 分类器。

Fields

CreateCsvClassifierRequest结构

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

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

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

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

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

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

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

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

  • Header – 一串UTF-8字符串。

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

  • DisableValueTrimming – 布尔值。

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

  • AllowSingleColumn – 布尔值。

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

UpdateCsvClassifierRequest结构

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

Fields

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    分类器的名称。

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

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

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

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

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

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

  • Header – 一串UTF-8字符串。

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

  • DisableValueTrimming – 布尔值。

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

  • AllowSingleColumn – 布尔值。

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

Operations

CreateClassifier 操作(Python:create_classifier)

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

Request

Response

  • 无响应参数。

Errors

  • AlreadyExistsException

  • InvalidInputException

  • OperationTimeoutException

DeleteClassifier 操作(Python:delete_classifier)

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

Request

Response

  • 无响应参数。

Errors

  • EntityNotFoundException

  • OperationTimeoutException

GetClassifier 操作(Python:get_classifier)

按名称检索分类器。

Request

  • Name必填: UTF-8字符串,长度不少于1或255字节,匹配 Single-line string pattern.

    要检索的分类器的名称。

Response

  • Classifier – 一个 分类器 对象。

    请求的分类器。

Errors

  • EntityNotFoundException

  • OperationTimeoutException

GetClassifiers 操作(Python:get_classifiers)

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

Request

  • MaxResults – 数字(整数),不低于1或大于1000。

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

  • NextToken – UTF-8字符串.

    一个可选延续令牌。

Response

  • Classifiers – 一系列 分类器 对象。

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

  • NextToken – UTF-8字符串.

    一个延续令牌。

Errors

  • OperationTimeoutException

UpdateClassifier 操作(Python:update_classifier)

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

Request

Response

  • 无响应参数。

Errors

  • InvalidInputException

  • VersionMismatchException

  • EntityNotFoundException

  • OperationTimeoutException