我正在尝试编写一个athena查询,它允许我在select语句中展开一个struct。假设我有一张table,我的table看起来像:
id string, metadata struct<field1:varchar,field2:int>
我知道你的名字 field1 在查询中,我可以从结构中提取字段,但是我想要一些更一般的内容,例如 metadata.* 所以模式可以是抽象的。这可以很容易地用python和一些库来完成,但是我想检查一下在雅典娜里面是否有什么可以做的。谢谢!
field1
metadata.*
4dc9hkyq1#
我想要它如果像 select results.id, results.scores.* from my_table results 成功了,但不幸的是没有。你所要求的是所谓的“广义所有领域的参考”。从presto 323开始在presto中提供。您可以从下载最新的presto版本https://prestosql.io/download.html.不幸的是,athena目前基于presto.172(3年前发布),因此该功能在那里不可用。在athena升级之前,您无法在sql级别应用任何解决方法。您需要在读取雅典娜数据的应用程序中对此进行补偿。或者,您可以轻松地在aws上部署最新的presto版本。
select results.id, results.scores.* from my_table results
1条答案
按热度按时间4dc9hkyq1#
我想要它如果像
select results.id, results.scores.* from my_table results
成功了,但不幸的是没有。你所要求的是所谓的“广义所有领域的参考”。从presto 323开始在presto中提供。您可以从下载最新的presto版本https://prestosql.io/download.html.
不幸的是,athena目前基于presto.172(3年前发布),因此该功能在那里不可用。在athena升级之前,您无法在sql级别应用任何解决方法。您需要在读取雅典娜数据的应用程序中对此进行补偿。或者,您可以轻松地在aws上部署最新的presto版本。