AWS GLUE 数据导入问题

Posted

技术标签:

【中文标题】AWS GLUE 数据导入问题【英文标题】:AWS GLUE Data Import Issue 【发布时间】:2017-11-28 21:24:16 【问题描述】:

有一个excel文件testFile.xlsx,如下所示:

ID  ENTITY  STATE
1   Montgomery County Muni Utility Dist No.39   TX
2   State of Washington WA
3   Waterloo CUSD 5 IL
4   Staunton CUSD 6 IL
5   Berea City SD   OH
6   City of Coshocton   OH

现在我想将数据导入 AWS GLUE 数据库,AWS GLUE 中的爬虫已创建,运行爬虫后 AWS GLUE 数据库中的表中没有任何内容。我想这应该是 AWS GLUE 中分类器的问题,但不知道创建一个合适的分类器来成功地将 excel 文件中的数据导入 AWS GLUE 数据库。感谢您的任何回答或建议。

【问题讨论】:

【参考方案1】:

恐怕 Glue Crawler 没有 MS Excel 文件(.xlsx 或 .xls)的分类器。 Here 您可以找到支持的格式和内置分类器的列表。在导出到 AWS Glue 目录之前,最好将文件转换为 CSV 或其他支持的格式。

【讨论】:

【参考方案2】:

Glue 爬虫不支持 MS Excel 文件。 如果要为 excel 文件创建表,则必须先将其从 excel 转换为 csv/json/parquet,然后在新创建的文件上运行爬虫。

您可以使用 pandas 轻松转换它。 创建一个普通的python作业并读取excel文件。

import pandas as pd
df = pd.read_excel('yourFile.xlsx', 'SheetName', dtype=str, index_col=None)
df.to_csv('yourFile.csv', encoding='utf-8', index=False)

这会将您的文件转换为 csv,然后在此文件上运行爬虫,然后您的表格将被加载。

希望对你有帮助。

【讨论】:

【参考方案3】:

当您说“运行爬网程序后 AWS Glue 数据库中的表中没有任何内容”时,您是说在 Glue UI 中,您点击的是数据库,然后是数据库名称,然后是“xxx 中的表”,什么都没有出现?

您问题的第二部分似乎表明您正在寻找 Glue 将文件的实际数据行导入 Glue 数据库。那是对的吗? Glue 数据库不存储数据行,仅存储有关文件的架构信息。您需要使用 Glue ETL 作业、Athena 或 hive 将数据从数据文件实际移动到 mysql 之类的文件中。

【讨论】:

【参考方案4】:

您应该编写脚本(很可能是 python shell 作业)将 excel 转换为 csv,然后在其上运行爬虫。

【讨论】:

以上是关于AWS GLUE 数据导入问题的主要内容,如果未能解决你的问题,请参考以下文章

每次我从 Python 库路径调用 .egg 时,AWS Glue 作业都会崩溃

AWS Glue ETL Spark- 字符串到时间戳

从 AWS Glue DynamicFrame 中的数组<string> 中提取第一个值

如何在 AWS 中使用 Glue 作业覆盖 s3 数据

AWS Glue to Redshift:是不是可以替换、更新或删除数据?

AWS Glue 数据目录的头文件