【问题标题】:AWS Athena row cast fails when key is a reserved keyword despite double quotes尽管有双引号,但当键是保留关键字时,AWS Athena 行转换失败
【发布时间】:2021-01-30 12:51:48
【问题描述】:

我正在处理 AWS Athena 中的数据,并且正在尝试匹配一些输入数据的结构。这涉及一个嵌套结构,其中“from”是一个键。这始终会引发错误。

我已将问题缩小到当您尝试将保留关键字用作行中的键时 Athena 查询不起作用这一事实。以下示例演示了这种行为。

  1. 这个简单的案例 SELECT CAST(ROW(1) AS ROW("from" INTEGER)) 失败并出现以下错误:GENERIC_INTERNAL_ERROR: Unable to create class com.facebook.presto.execution.TaskInfo from JSON response: [io.airlift.jaxrs.JsonMapperParsingException: Invalid json for Java type

  2. 这个简单的案例运行成功:SELECT CAST(ROW(1) AS ROW("work" INTEGER))

Athena 文档说将保留关键字括在双引号中以在 SELECT 语句中使用它们,但上面的示例表明,当使用关键字作为行中的键时查询仍然失败。

我知道我还有其他选择,但这种方式是迄今为止最方便的。有没有办法在这种情况下使用保留关键字?

【问题讨论】:

标签: presto amazon-athena


【解决方案1】:

正如 Piotr 在评论中提到的,这是一个 Presto 错误,鉴于它是在几天前发布的,因此不太可能很快在 Athena 中修复。当在 Presto 中修复错误时,它可能会进入 Athena,我知道 Athena 团队有时会应用上游补丁,即使 Athena 是基于旧版本的 Presto。这可能不足以出现在他们的雷达上,但如果您使用 AWS 开具支持票证,它可能会发生(请务必明确您不需要任何解决方法,只需报告错误,否则您将有支持人员花费太多时间试图帮助您关闭和重新打开设备)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2015-11-17
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多