AWS Athena: HIVE_UNKNOWN_ERROR: Unable to create input format

AWS Athena: HIVE_UNKNOWN_ERROR: Unable to create input format

我使用 AWS Glue 在 S3 上抓取了几个 XML 文件,使用一个简单的 XML 分类器:

但是,当我使用 AWS Athena 尝试 运行 any 查询该数据时,出现以下错误(请注意,这是我在这里执行的最简单的查询):

HIVE_UNKNOWN_ERROR: Unable to create input format

注意 Athena 可以看到我的表和列,只是不能查询它们:

有人对此有解决方案吗?

遗憾的是,此时 12/2018 Athena cannot query XML input 当您听到 Athena 和 AWS Glue 可以查询 xml 时,这很难理解。

虽然您从 AWS 爬虫看到的输出是正确的,但不是您认为的那样!例如,在您的爬虫具有 运行 并且您看到 table 之后,但无法执行任何 Athena 查询。进入您的 AWS Glue 目录并右键单击 tables,单击您的 table,编辑属性,它看起来像这样:

注意输入格式是空的吗?如果您有任何其他 table,您可以查看它们的属性或参考输入 formatters documentation for Athena。这是您收到的错误。

解决方案:

  1. 在上传之前将您的数据转换为 text/json/avro/other 支持的格式
  2. 创建一个 AWS 胶水作业,将源到目标从 xml 转换为目标支持的 Athena 格式(希望使用 ORC/Parquet 压缩)