有没有办法在aws雅典娜中展平一个struct字段?

qcbq4gxm  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(426)

我正在尝试编写一个athena查询,它允许我在select语句中展开一个struct。
假设我有一张table,我的table看起来像:

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

我知道你的名字 field1 在查询中,我可以从结构中提取字段,但是我想要一些更一般的内容,例如 metadata.* 所以模式可以是抽象的。
这可以很容易地用python和一些库来完成,但是我想检查一下在雅典娜里面是否有什么可以做的。
谢谢!

4dc9hkyq

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版本。

相关问题