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

How to query ambiguous data types in Athena?

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

例如,列 col 键入为 struct<long:bigint,string:string>

如果我 select 来自 table tbl,那么 col 的值显示如下:

{long=16, string=null}
{long=null, string=15.2}

我现在想做的是专门查询 col 被分类为 string 的那些行。

我该怎么做?

(要从 tbl 中过滤行,其 col 列中的值被分类为 long> 10,查询必须是什么样子?)

您可以像这样过滤数值:

... WHERE col.long > 10

您可以使用 Presto try 函数过滤实际上是数字的字符串值,如下所示:

... WHERE try(CAST(col.string AS bigint)) > 10