amazon-web-services - 雪花表不接受日期字段中的空值
问题描述
我有一张雪花表,我正在使用批量加载。表中的列之一是日期,但在 sql server 上的源表中,日期列中有空值。
数据流如下:
sql_server-->S3 存储桶-->snowflake_table
我能够在 EMR 中执行 sqoop 作业,但无法将数据加载到雪花表中,因为它不接受日期列中的空值。
错误是:
Date '' is not recognized File 'schema_name/table_name/file1', line 2, character 18 Row 2,
column "table_name"["column_name":5] If you would like to continue loading when an error is
encountered, use other values such as 'SKIP_FILE' or 'CONTINUE' for the ON_ERROR option.
谁能帮忙,我想念的地方
解决方案
该错误表明日期不是作为空值到达的。相反,它们以空白字符串的形式出现。您可以通过几种不同的方式解决这个问题。
最简洁的方法是在该列的 COPY INTO 语句中使用 TRY_TO_DATE 函数。尝试将空白字符串转换为日期时,此函数将返回数据库 null:
https://docs.snowflake.com/en/sql-reference/functions/try_to_date.html#try-to-date