分类器 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
– 数字(长型)。此分类器的版本。
-
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
– 数字(长型)。此分类器的版本。
-
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
– 数字(长型)。此分类器的版本。
-
JsonPath
– 必填:UTF-8 字符串。一种分类器使用的
JsonPath
字符串,该字符串定义供分类器分类的 JSON 数据。AWS Glue 支持小部分适用于 JsonPath 的运算符,如编写 JsonPath 自定义分类器中所述。
CsvClassifier 结构
自定义 CSV
内容的分类器。
字段
-
Name
– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。分类器的名称。
-
CreationTime
– 时间戳。注册此分类器的时间。
-
LastUpdated
– 时间戳。上次更新此分类器的时间。
-
Version
– 数字(长型)。此分类器的版本。
-
Delimiter
– UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #26 匹配。一个自定义符号,表示分隔行中每个列条目的内容。
-
QuoteSymbol
– UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #26 匹配。一个自定义符号,表示将内容组合为单个列值的内容。它必须与列分隔符不同。
-
ContainsHeader
– UTF-8 字符串(有效值:UNKNOWN
|PRESENT
|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
|LazySimpleSerDe
|None
)。设置用于在分类器中处理 CSV 的 SerDe,该分类器将应用于 Data Catalog。有效值包括
OpenCSVSerDe
、LazySimpleSerDe
和None
。当您想让爬网程序执行检测时,可以指定None
值。
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 #26 匹配。一个自定义符号,表示分隔行中每个列条目的内容。
-
QuoteSymbol
– UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #26 匹配。一个自定义符号,表示将内容组合为单个列值的内容。必须与列分隔符不同。
-
ContainsHeader
– UTF-8 字符串(有效值:UNKNOWN
|PRESENT
|ABSENT
)。指示 CSV 文件是否包含标头。
-
Header
– UTF-8 字符串数组。表示列名称的字符串列表。
-
DisableValueTrimming
– 布尔值。指定在标识列值类型之前不去除值。默认值为 true。
-
AllowSingleColumn
– 布尔值。允许处理仅包含一列的文件。
-
CustomDatatypeConfigured
– 布尔值。允许配置自定义数据类型。
-
CustomDatatypes
– UTF-8 字符串数组。创建受支持的自定义数据类型列表。
-
Serde
– UTF-8 字符串(有效值:OpenCSVSerDe
|LazySimpleSerDe
|None
)。设置用于在分类器中处理 CSV 的 SerDe,该分类器将应用于 Data Catalog。有效值包括
OpenCSVSerDe
、LazySimpleSerDe
和None
。当您想让爬网程序执行检测时,可以指定None
值。
UpdateCsvClassifierRequest 结构
指定要更新的自定义 CSV 分类器。
字段
-
Name
– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。分类器的名称。
-
Delimiter
– UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #26 匹配。一个自定义符号,表示分隔行中每个列条目的内容。
-
QuoteSymbol
– UTF-8 字符串,长度不少于 1 个字节或超过 1 个字节,与 Custom string pattern #26 匹配。一个自定义符号,表示将内容组合为单个列值的内容。它必须与列分隔符不同。
-
ContainsHeader
– UTF-8 字符串(有效值:UNKNOWN
|PRESENT
|ABSENT
)。指示 CSV 文件是否包含标头。
-
Header
– UTF-8 字符串数组。表示列名称的字符串列表。
-
DisableValueTrimming
– 布尔值。指定在标识列值类型之前不去除值。默认值为 true。
-
AllowSingleColumn
– 布尔值。允许处理仅包含一列的文件。
-
CustomDatatypeConfigured
– 布尔值。指定配置自定义数据类型。
-
CustomDatatypes
– UTF-8 字符串数组。指定受支持的自定义数据类型列表。
-
Serde
– UTF-8 字符串(有效值:OpenCSVSerDe
|LazySimpleSerDe
|None
)。设置用于在分类器中处理 CSV 的 SerDe,该分类器将应用于 Data Catalog。有效值包括
OpenCSVSerDe
、LazySimpleSerDe
和None
。当您想让爬网程序执行检测时,可以指定None
值。
操作
CreateClassifier 操作(Python:create_classifier)
在用户的账户中创建分类器。这可以是 GrokClassifier
、XMLClassifier
、JsonClassifier
或 CsvClassifier
,具体取决于请求的哪个字段存在。
请求
-
GrokClassifier
– 一个 CreateGrokClassifierRequest 对象。一个指定要创建的分类器的
GrokClassifier
对象。 -
XMLClassifier
– 一个 CreateXMLClassifierRequest 对象。一个指定要创建的分类器的
XMLClassifier
对象。 -
JsonClassifier
– 一个 CreateJsonClassifierRequest 对象。一个指定要创建的分类器的
JsonClassifier
对象。 -
CsvClassifier
– 一个 CreateCsvClassifierRequest 对象。一个指定要创建的分类器的
CsvClassifier
对象。
响应
无响应参数。
错误
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
– 数字(整数),不小于 1 或大于 1000。要返回的列表的大小 (可选)。
-
NextToken
– UTF-8 字符串。一个可选延续令牌。
响应
-
Classifiers
– 分类器 对象的数组。请求的分类器对象的列表。
-
NextToken
– UTF-8 字符串。一个延续令牌。
错误
OperationTimeoutException
UpdateClassifier 操作(Python:update_classifier)
修改现有分类器(GrokClassifier
、XMLClassifier
、JsonClassifier
或 CsvClassifier
,具体取决于存在的字段)。
请求
-
GrokClassifier
– 一个 UpdateGrokClassifierRequest 对象。一个包含已更新字段的
GrokClassifier
对象。 -
XMLClassifier
– 一个 UpdateXMLClassifierRequest 对象。一个包含已更新字段的
XMLClassifier
对象。 -
JsonClassifier
– 一个 UpdateJsonClassifierRequest 对象。一个包含已更新字段的
JsonClassifier
对象。 -
CsvClassifier
– 一个 UpdateCsvClassifierRequest 对象。一个包含已更新字段的
CsvClassifier
对象。
响应
无响应参数。
错误
InvalidInputException
VersionMismatchException
EntityNotFoundException
OperationTimeoutException