如何在 aws redshift 中删除 NaN

Posted

技术标签:

【中文标题】如何在 aws redshift 中删除 NaN【英文标题】:How to remove NaNs in aws redshift 【发布时间】:2016-04-13 21:40:03 【问题描述】:

我正在尝试从 aws redshift 中的列中删除 NaN(基于 PostgreSQL 8.0.2)。

我想使用更新语句来执行此操作,例如:

UPDATE table001
SET variable_a = NULL
FROM table001 
WHERE variable_a = 'NaN'

但找不到一种方法来对我需要的行进行子集化。我也试过 WHERE variable_a = 'NaN'::floatWHERE variable_a = FLOAT8 'NaN' 但在所有情况下 where 子句都不会带回任何行

(variable_a 的 data_type 为 float8)

【问题讨论】:

只是好奇。你能查一下:SELECT * FROM table001 WHERE NOT (variable_1 <> 'NaN')吗?如果列可以为空,可能还有一些NULL 处理。 感谢您的评论,我试过了,但它带回了零行 【参考方案1】:

NaN 不等于 RedShift 列中的另一个 NaN(与 PostgreSQL 不同)。

你应该检查它的文本表示:

UPDATE  table001
SET     variable_a = NULL
WHERE   variable_a::TEXT = 'nan' -- mind the case

【讨论】:

在 where 子句中使用 WHERE variable_a::TEXT = 'NaN' 可以按预期工作,谢谢

以上是关于如何在 aws redshift 中删除 NaN的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue to Redshift:是否可以替换,更新或删除数据?

AWS Redshift 脚本导出

AWS Redshift 可以删除包含在事务中的表吗?

如何处理 AWS Redshift 卸载命令中的引用值?

AWS Glue to Redshift:是不是可以替换、更新或删除数据?

如何通过 aws redshift 管理 django'orm?