使用NaN将CSV数据加载到AWS Redshift中

Cra*_*aig 6 csv amazon-web-services amazon-redshift

我正在尝试将AWS S3中的CSV文件加载到AWS Redshift中.CSV文件包含如下行:

15,NaN时,0

该表通过以下方式创建:

CREATE TABLE foo(INT,b DOUBLE PRECISION,c INT);

我正在尝试使用COPY命令加载表:

COPY foo(a,b,c)FROM"s3://"CREDENTIALS ... CSV;

我抱怨错误:

无效的数字值'N'

试图通过INSERT语句手动加载相同的行正常工作:

INSERT INTO foo(a,b,c)VALUES(15,'NaN',0);

任何帮助将非常感激!

nov*_*ket 5

如果这是您想要做的,您需要告诉Redshift将NaN加载为NULL.

例如:

COPY foo from 's3://xxx' credentials 'xxxx' DELIMETER AS ',' NULL 'NaN';
Run Code Online (Sandbox Code Playgroud)

这应该成功执行并在表中插入NULL而不是NaN.

  • 我实际上想将它加载为 NaN 而不是 NULL(Redshift 支持双精度列的 NaN 构造),但似乎这可能无法从 CSV 中实现? (2认同)