如何在 Athena 中查询不明确的数据类型?
Posted
技术标签:
【中文标题】如何在 Athena 中查询不明确的数据类型?【英文标题】:How to query ambiguous data types in Athena? 【发布时间】:2020-02-02 20:48:30 【问题描述】:我有一个存储在 Parquet 文件中的数据集,该文件从 S3 爬取并在 Glue 数据目录中注册。有些列的类型不明确。
例如,col
列的类型为 struct<long:bigint,string:string>
。
如果我从该表中选择 tbl
,则 col
的值会显示如下:
long=16, string=null
long=null, string=15.2
我现在想做的是专门查询col
被归类为string
的那些行。
我该怎么做?
(如果从tbl
中筛选出col
列中的值被分类为long
和> 10
的行,查询应该是什么样子?)
【问题讨论】:
你试过... WHERE col.long > 10
吗?这与您的预期结果有何不同?另外,如果你想过滤col.string
,你可以这样做:... WHERE try(CAST(col.string AS bigint)) > 10
。
@PiotrFindeisen:是的,这行得通。非常感谢。
谢谢@Raffael。我正在把它变成一个答案。
【参考方案1】:
您可以像这样过滤数值:
... WHERE col.long > 10
您可以使用 Presto try
函数过滤实际上是数字的字符串值,如下所示:
... WHERE try(CAST(col.string AS bigint)) > 10
【讨论】:
以上是关于如何在 Athena 中查询不明确的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Athena 可以更新或插入存储在 S3 中的数据吗?