如何在 Athena 中查询不明确的数据类型?

Raf*_*ael 1 presto amazon-athena

我有一个数据集存储在从 S3 爬取并在 Glue 数据目录中注册的 Parquet 文件中。一些列的类型不明确。

例如,列col的类型为struct<long:bigint,string:string>

如果我从该表中选择tbl,则col显示的值如下所示:

{long=16, string=null}
{long=null, string=15.2}
Run Code Online (Sandbox Code Playgroud)

我现在想要做的是专门查询那些col被归类为string.

我该怎么做?

(从列中tbl的值col被归类为long和的行中过滤行,查询应该是什么样的> 10?)

Pio*_*sen 5

您可以像这样过滤数值:

... WHERE col.long > 10
Run Code Online (Sandbox Code Playgroud)

您可以使用 Prestotry函数过滤实际为数字的字符串值,如下所示:

... WHERE try(CAST(col.string AS bigint)) > 10
Run Code Online (Sandbox Code Playgroud)