当我使用内置分类器解析我的固定宽度数据文件时,为什么 AWS Glue 爬网程序会将该文件归类为 UNKNOWN(未知)?

1 分钟阅读
0

当我使用内置分类器解析固定宽度的.dat 文件时,我的 AWS Glue 爬网程序会将该文件归类为 UNKNOWN(未知)。

简短描述

内置分类器无法解析固定宽度的数据文件。改用 grok 自定义分类器。

解决方法

创建 grok 自定义分类器

完成以下步骤。

  1. 打开 AWS Glue 控制台

  2. 在导航窗格中,选择 Classifiers(分类器)。

  3. 选择 Add classifier(添加分类器),然后输入以下内容:
    对于 Classifier name(分类器名称),输入唯一的名称。
    对于 Classifier type(分类器类型),选择 Grok
    对于 Classification(分类),输入对要分类的数据格式或类型的描述。
    对于 Grok pattern(Grok 模式),输入您希望 AWS Glue 用来在数据中查找匹配项的内置模式。要解析 .dat 文件,不需要在字段之间使用分隔符。因为每个字段都有已知的长度,使用正则表达式模式来查找匹配项。

    示例:

    (?<col0>.{7})(?<col1>.{8})(?<col2>.{14})(?<col3>.{52})

    (可选)对于 Custom patterns(自定义模式),输入要使用的任何自定义模式。这些模式由对数据进行分类的 grok 模式引用。每个自定义模式必须位于单独的行上。有关详细信息,请参阅编写 grok 自定义分类器

  4. 选择 Create(创建)。

创建并运行爬网程序

完成以下步骤:

  1. 在导航窗格中,选择 Crawlers(爬网程序)。
  2. 选择 Add crawler(添加爬网程序)。
  3. 对于 Crawler name(爬网程序名称),输入唯一的名称。
  4. 选择 Tags, description, security configuration, and classifiers (optional)(标签、描述、安全配置和分类器(可选))部分旁边的箭头,然后转到 Custom classifiers(自定义分类器)部分。
  5. 在您之前创建的客户分类器旁边选择 Add(添加),然后选择 Next(下一步)。
  6. Specify crawler source type(指定爬网程序源类型)页面上,选择 Data stores(数据存储),然后选择 Next(下一步)。
  7. Add a data store(添加数据存储)页面上,输入以下内容:
    对于 Choose data store(选择数据存储),选择您的首选数据存储。
    对于 Include path(包含路径),输入 .dat 文件的路径。
  8. 选择 Next(下一步),然后确认是否要添加其他数据存储。
  9. Choose an IAM role(选择 IAM 角色)页面上,选择现有的 AWS Identity and Access Management (IAM) 角色或创建一个新角色。然后,选择 Next(下一步)。
  10. 对于 Frequency(频率),选择 Run on demand(按需运行),然后选择 Next(下一步)。
  11. Configure the crawler's output(配置爬网程序的输出)页面上,对于 Database(数据库),选择要在其中创建表的数据库。然后,选择 Next(下一步)。
  12. 选择 Finish(完成)。
  13. 当爬网程序状态变为 Ready(就绪)时,选择爬网程序名称,然后选择 Run crawler(运行爬网程序)。
  14. 等待爬网程序完成,然后在导航窗格中选择 Tables(表)。Classification(分类)必须与您为 grok 自定义分类器输入的分类相匹配。

相关信息

使用 AWS Glue 控制台创建分类器

定义和管理分类器

AWS 官方
AWS 官方已更新 3 个月前