【问题标题】:Is there a way to flatten a struct field in AWS Athena?有没有办法在 AWS Athena 中展平结构字段?
【发布时间】:2020-08-24 14:13:15
【问题描述】:

我正在尝试编写一个 Athena 查询,它允许我在 select 语句中扩展一个结构。

假设我有一个表 my_table,它看起来像:

id string,
metadata struct<field1:varchar,field2:int>

我知道通过将名称 field1 放在查询中,我可以从结构中提取字段,但我想要更通用的东西,例如 metadata.*,因此架构可以是抽象的。

这可以通过 Python 和一些库轻松完成,但想检查 Athena 内部是否有任何事情可以完成。

谢谢!

【问题讨论】:

    标签: json amazon-s3 hive presto amazon-athena


    【解决方案1】:

    如果select results.id, results.scores.* from my_table results 之类的东西可以工作,我希望它,但不幸的是它没有。

    您要求的是“通用所有字段参考”。 它自 Presto 323 起在 Presto 中可用。 您可以从https://trino.io/download.html 下载最新的 Presto 版本。

    不幸的是,Athena 目前基于 Presto .172(3 年前发布),因此该功能不可用。在 Athena 升级之前,您无法在 SQL 级别应用任何解决方法。您需要在从 Athena 读取数据的应用程序中对此进行补偿。或者,您可以deploy recent Presto version on AWS easily

    【讨论】:

    • Athena 引擎 2 现在基于 presto 0.217,但这仍然是 0.323,所以没有骰子!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多