如何在 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
我有一个数据集存储在从 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