Как запросить неоднозначные типы данных в Афине? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть набор данных, сохраненный в файлах 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?)

1 Ответ

3 голосов
/ 04 октября 2019

Вы можете фильтровать числовые значения следующим образом:

... WHERE col.long > 10

Вы можете фильтровать строковые значения, которые на самом деле являются числами, используя функцию Presto try, например:

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