【问题标题】:How to query ambiguous data types in Athena?如何在 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。我正在把它变成一个答案。

标签: presto amazon-athena


【解决方案1】:

您可以像这样过滤数值:

... WHERE col.long > 10

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

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

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2021-04-29
    相关资源
    最近更新 更多