

# 分类器 API
<a name="aws-glue-api-crawler-classifiers"></a>

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

## 数据类型
<a name="aws-glue-api-crawler-classifiers-objects"></a>
+ [Classifier 结构](#aws-glue-api-crawler-classifiers-Classifier)
+ [GrokClassifier 结构](#aws-glue-api-crawler-classifiers-GrokClassifier)
+ [XMLClassifier 结构](#aws-glue-api-crawler-classifiers-XMLClassifier)
+ [JsonClassifier 结构](#aws-glue-api-crawler-classifiers-JsonClassifier)
+ [CsvClassifier 结构](#aws-glue-api-crawler-classifiers-CsvClassifier)
+ [CreateGrokClassifierRequest 结构](#aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest)
+ [UpdateGrokClassifierRequest 结构](#aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest)
+ [CreateXMLClassifierRequest 结构](#aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest)
+ [UpdateXMLClassifierRequest 结构](#aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest)
+ [CreateJsonClassifierRequest 结构](#aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest)
+ [UpdateJsonClassifierRequest 结构](#aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest)
+ [CreateCsvClassifierRequest 结构](#aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest)
+ [UpdateCsvClassifierRequest 结构](#aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest)

## Classifier 结构
<a name="aws-glue-api-crawler-classifiers-Classifier"></a>

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

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

**字段**
+ `GrokClassifier` – 一个 [GrokClassifier](#aws-glue-api-crawler-classifiers-GrokClassifier) 对象。

  使用 `grok` 的分类器。
+ `XMLClassifier` – 一个 [XMLClassifier](#aws-glue-api-crawler-classifiers-XMLClassifier) 对象。

  XML 内容的分类器。
+ `JsonClassifier` – 一个 [JsonClassifier](#aws-glue-api-crawler-classifiers-JsonClassifier) 对象。

  JSON 内容的分类器。
+ `CsvClassifier` – 一个 [CsvClassifier](#aws-glue-api-crawler-classifiers-CsvClassifier) 对象。

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

## GrokClassifier 结构
<a name="aws-glue-api-crawler-classifiers-GrokClassifier"></a>

使用 `grok` 模式的分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `Classification` – *必填：*UTF-8 字符串。

  与分类器匹配的数据格式（例如，Twitter、JSON、Omniture 日志等）的标识符。
+ `CreationTime` – 时间戳。

  注册此分类器的时间。
+ `LastUpdated` – 时间戳。

  上次更新此分类器的时间。
+ `Version` – 数字（长型）。

  此分类器的版本。
+ `GrokPattern` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 2048 个字节，与 [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern) 匹配。

  由此分类器应用于数据存储的 grok 模式。有关更多信息，请参阅[编写自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)中的“内置模式”。
+ `CustomPatterns` – UTF-8 字符串，不超过 16000 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

  由此分类器定义的可选自定义 grok 模式。有关更多信息，请参阅[编写自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)中的“自定义模式”。

## XMLClassifier 结构
<a name="aws-glue-api-crawler-classifiers-XMLClassifier"></a>

`XML` 内容的分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `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 结构
<a name="aws-glue-api-crawler-classifiers-JsonClassifier"></a>

`JSON` 内容的分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `CreationTime` – 时间戳。

  注册此分类器的时间。
+ `LastUpdated` – 时间戳。

  上次更新此分类器的时间。
+ `Version` – 数字（长型）。

  此分类器的版本。
+ `JsonPath` – *必填：*UTF-8 字符串。

  一种分类器使用的 `JsonPath` 字符串，该字符串定义供分类器分类的 JSON 数据。AWS Glue 支持小部分适用于 JsonPath 的运算符，如[编写 JsonPath 自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)中所述。

## CsvClassifier 结构
<a name="aws-glue-api-crawler-classifiers-CsvClassifier"></a>

自定义 `CSV` 内容的分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `CreationTime` – 时间戳。

  注册此分类器的时间。
+ `LastUpdated` – 时间戳。

  上次更新此分类器的时间。
+ `Version` – 数字（长型）。

  此分类器的版本。
+ `Delimiter` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示分隔行中每个列条目的内容。
+ `QuoteSymbol` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示将内容组合为单个列值的内容。它必须与列分隔符不同。
+ `ContainsHeader` – UTF-8 字符串（有效值：`UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`）。

  指示 CSV 文件是否包含标头。
+ `Header` – UTF-8 字符串数组。

  表示列名称的字符串列表。
+ `DisableValueTrimming` – 布尔值。

  指定在标识列值类型之前不去除值。默认值为 `true`。
+ `AllowSingleColumn` – 布尔值。

  允许处理仅包含一列的文件。
+ `CustomDatatypeConfigured` – 布尔值。

  允许配置自定义数据类型。
+ `CustomDatatypes` – UTF-8 字符串数组。

  自定义数据类型列表包括“BINARY”、“BOOLEAN”、“DATE”、“DECIMAL”、“DOUBLE”、“FLOAT”、“INT”、“LONG”、“SHORT”、“STRING”、“TIMESTAMP”。
+ `Serde` – UTF-8 字符串（有效值：`OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`）。

  设置用于在分类器中处理 CSV 的 SerDe，该分类器将应用于 Data Catalog。有效值包括 `OpenCSVSerDe`、`LazySimpleSerDe` 和 `None`。当您想让爬网程序执行检测时，可以指定 `None` 值。

## CreateGrokClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest"></a>

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

**字段**
+ `Classification` – *必填：*UTF-8 字符串。

  与分类器匹配的数据格式 (例如，Twitter、JSON、Omniture 日志、Amazon CloudWatch Logs 等) 的标识符。
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  新分类器的名称。
+ `GrokPattern` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 2048 个字节，与 [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern) 匹配。

  此分类器使用的 grok 模式。
+ `CustomPatterns` – UTF-8 字符串，不超过 16000 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

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

## UpdateGrokClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest"></a>

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

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  `GrokClassifier` 的名称。
+ `Classification` – UTF-8 字符串。

  与分类器匹配的数据格式 (例如，Twitter、JSON、Omniture 日志、Amazon CloudWatch Logs 等) 的标识符。
+ `GrokPattern` – UTF-8 字符串，不少于 1 个字节或超过 2048 个字节，与 [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern) 匹配。

  此分类器使用的 grok 模式。
+ `CustomPatterns` – UTF-8 字符串，不超过 16000 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

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

## CreateXMLClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest"></a>

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

**字段**
+ `Classification` – *必填：*UTF-8 字符串。

  与分类器匹配的数据格式的标识符。
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `RowTag` – UTF-8 字符串。

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

## UpdateXMLClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest"></a>

指定要更新的 XML 分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `Classification` – UTF-8 字符串。

  与分类器匹配的数据格式的标识符。
+ `RowTag` – UTF-8 字符串。

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

## CreateJsonClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest"></a>

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

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `JsonPath` – *必填：*UTF-8 字符串。

  一种分类器使用的 `JsonPath` 字符串，该字符串定义供分类器分类的 JSON 数据。AWS Glue 支持小部分适用于 JsonPath 的运算符，如[编写 JsonPath 自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)中所述。

## UpdateJsonClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest"></a>

指定要更新的 JSON 分类器。

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `JsonPath` – UTF-8 字符串。

  一种分类器使用的 `JsonPath` 字符串，该字符串定义供分类器分类的 JSON 数据。AWS Glue 支持小部分适用于 JsonPath 的运算符，如[编写 JsonPath 自定义分类器](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)中所述。

## CreateCsvClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest"></a>

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

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `Delimiter` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示分隔行中每个列条目的内容。
+ `QuoteSymbol` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示将内容组合为单个列值的内容。必须与列分隔符不同。
+ `ContainsHeader` – UTF-8 字符串（有效值：`UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`）。

  指示 CSV 文件是否包含标头。
+ `Header` – UTF-8 字符串数组。

  表示列名称的字符串列表。
+ `DisableValueTrimming` – 布尔值。

  指定在标识列值类型之前不去除值。默认值为 true。
+ `AllowSingleColumn` – 布尔值。

  允许处理仅包含一列的文件。
+ `CustomDatatypeConfigured` – 布尔值。

  允许配置自定义数据类型。
+ `CustomDatatypes` – UTF-8 字符串数组。

  创建受支持的自定义数据类型列表。
+ `Serde` – UTF-8 字符串（有效值：`OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`）。

  设置用于在分类器中处理 CSV 的 SerDe，该分类器将应用于 Data Catalog。有效值包括 `OpenCSVSerDe`、`LazySimpleSerDe` 和 `None`。当您想让爬网程序执行检测时，可以指定 `None` 值。

## UpdateCsvClassifierRequest 结构
<a name="aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest"></a>

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

**字段**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  分类器的名称。
+ `Delimiter` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示分隔行中每个列条目的内容。
+ `QuoteSymbol` – UTF-8 字符串，长度不少于 1 个字节或超过 1 个字节，与 [Custom string pattern #26](aws-glue-api-common.md#regex_26) 匹配。

  一个自定义符号，表示将内容组合为单个列值的内容。它必须与列分隔符不同。
+ `ContainsHeader` – UTF-8 字符串（有效值：`UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`）。

  指示 CSV 文件是否包含标头。
+ `Header` – UTF-8 字符串数组。

  表示列名称的字符串列表。
+ `DisableValueTrimming` – 布尔值。

  指定在标识列值类型之前不去除值。默认值为 true。
+ `AllowSingleColumn` – 布尔值。

  允许处理仅包含一列的文件。
+ `CustomDatatypeConfigured` – 布尔值。

  指定配置自定义数据类型。
+ `CustomDatatypes` – UTF-8 字符串数组。

  指定受支持的自定义数据类型列表。
+ `Serde` – UTF-8 字符串（有效值：`OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`）。

  设置用于在分类器中处理 CSV 的 SerDe，该分类器将应用于 Data Catalog。有效值包括 `OpenCSVSerDe`、`LazySimpleSerDe` 和 `None`。当您想让爬网程序执行检测时，可以指定 `None` 值。

## 操作
<a name="aws-glue-api-crawler-classifiers-actions"></a>
+ [CreateClassifier 操作（Python：create\$1classifier）](#aws-glue-api-crawler-classifiers-CreateClassifier)
+ [DeleteClassifier 操作（Python：delete\$1classifier）](#aws-glue-api-crawler-classifiers-DeleteClassifier)
+ [GetClassifier 操作（Python：get\$1classifier）](#aws-glue-api-crawler-classifiers-GetClassifier)
+ [GetClassifiers 操作（Python：get\$1classifiers）](#aws-glue-api-crawler-classifiers-GetClassifiers)
+ [UpdateClassifier 操作（Python：update\$1classifier）](#aws-glue-api-crawler-classifiers-UpdateClassifier)

## CreateClassifier 操作（Python：create\$1classifier）
<a name="aws-glue-api-crawler-classifiers-CreateClassifier"></a>

在用户的账户中创建分类器。这可以是 `GrokClassifier`、`XMLClassifier`、`JsonClassifier` 或 `CsvClassifier`，具体取决于请求的哪个字段存在。

**请求**
+ `GrokClassifier` – 一个 [CreateGrokClassifierRequest](#aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest) 对象。

  一个指定要创建的分类器的 `GrokClassifier` 对象。
+ `XMLClassifier` – 一个 [CreateXMLClassifierRequest](#aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest) 对象。

  一个指定要创建的分类器的 `XMLClassifier` 对象。
+ `JsonClassifier` – 一个 [CreateJsonClassifierRequest](#aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest) 对象。

  一个指定要创建的分类器的 `JsonClassifier` 对象。
+ `CsvClassifier` – 一个 [CreateCsvClassifierRequest](#aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest) 对象。

  一个指定要创建的分类器的 `CsvClassifier` 对象。

**响应**
+ *无响应参数。*

**错误**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## DeleteClassifier 操作（Python：delete\$1classifier）
<a name="aws-glue-api-crawler-classifiers-DeleteClassifier"></a>

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

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要删除的分类器名称。

**响应**
+ *无响应参数。*

**错误**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetClassifier 操作（Python：get\$1classifier）
<a name="aws-glue-api-crawler-classifiers-GetClassifier"></a>

按名称检索分类器。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要检索的分类器的名称。

**响应**
+ `Classifier` – 一个 [分类器](#aws-glue-api-crawler-classifiers-Classifier) 对象。

  请求的分类器。

**错误**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetClassifiers 操作（Python：get\$1classifiers）
<a name="aws-glue-api-crawler-classifiers-GetClassifiers"></a>

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

**请求**
+ `MaxResults` – 数字（整数），不小于 1 或大于 1000。

  要返回的列表的大小 (可选)。
+ `NextToken` – UTF-8 字符串。

  一个可选延续令牌。

**响应**
+ `Classifiers` – [分类器](#aws-glue-api-crawler-classifiers-Classifier) 对象的数组。

  请求的分类器对象的列表。
+ `NextToken` – UTF-8 字符串。

  一个延续令牌。

**错误**
+ `OperationTimeoutException`

## UpdateClassifier 操作（Python：update\$1classifier）
<a name="aws-glue-api-crawler-classifiers-UpdateClassifier"></a>

修改现有分类器（`GrokClassifier`、`XMLClassifier`、`JsonClassifier` 或 `CsvClassifier`，具体取决于存在的字段）。

**请求**
+ `GrokClassifier` – 一个 [UpdateGrokClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest) 对象。

  一个包含已更新字段的 `GrokClassifier` 对象。
+ `XMLClassifier` – 一个 [UpdateXMLClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest) 对象。

  一个包含已更新字段的 `XMLClassifier` 对象。
+ `JsonClassifier` – 一个 [UpdateJsonClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest) 对象。

  一个包含已更新字段的 `JsonClassifier` 对象。
+ `CsvClassifier` – 一个 [UpdateCsvClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest) 对象。

  一个包含已更新字段的 `CsvClassifier` 对象。

**响应**
+ *无响应参数。*

**错误**
+ `InvalidInputException`
+ `VersionMismatchException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`