AWS Athena:仅过滤列中的数字条目

Mat*_*lgo 3 amazon-web-services presto amazon-athena

我正在尝试在 AWS Athena 上进行查询,我只想从 varchar 列中过滤数字条目。但是,Athena 不支持 ISNUMERIC 功能。我看到了一些很有用的函数,但它们仅适用于 Amazon Redshift 而不适用于 AWS Athena。有没有办法在 Athena 上应用这种类型的过滤器?谢谢你。

Pio*_*sen 6

你可以这样做try()

... 
WHERE try(CAST(my_column AS double)) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)


The*_*heo 5

您可以使用regexp_like

\n\n
\xe2\x80\xa6\nWHERE regexp_like(my_column, \'^-?\\d+$\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将匹配正整数和负整数,如果您想匹配小数,当然您需要更复杂的模式。

\n