[XX000][500310] [Amazon](500310) 无效操作:解析的清单不是有效的 JSON 对象

[XX000][500310] [Amazon](500310) Invalid operation: Parsed manifest is not a valid JSON object

我是 运行 一个文件夹的爬虫,该文件夹包含多个具有不同架构的文件。我希望为每个文件找到一个 table。

发生的事情是,在 Glue 目录中,我实际上可以看到每个文件都有一个 table,具有自己的架构。但是当我尝试通过 Redshift Spectrum 查询它时(在创建外部模式等之后)我得到这个异常:

[XX000][500310] [Amazon](500310) Invalid operation: Parsed manifest is not a valid JSON object.

如何解决?

据此论坛报道https://forums.aws.amazon.com/thread.jspa?threadID=266510

every file should be in its own folder/sub-bucket

所以对我而言,将每个文件放在其自己的文件夹中并将 Glue Crawler 设置为 运行 在顶级文件夹上解决了异常。

我现在可以毫无问题地查询它了。

Google 员工:

如果抓取程序无法从其包含的文件夹中创建 table,则将 Location 的 Glue table 设置为文件。

即文件:

  • 不在文件夹中,而是直接在存储桶的根路径中
  • 没有与同一文件夹中的同级文件兼容的文件格式、压缩方法或架构

Redshift Spectrum 或 Athena 不支持直接指向文件的 Location,因此出现此错误。

为了解决这个问题,制作一个包含文件夹,同时确保所有兄弟姐妹的格式相同。 运行又是爬虫

然后您应该会看到 Location 指向存储桶中的前缀。