首页 > 解决方案 > 雪花表不接受日期字段中的空值

问题描述

我有一张雪花表,我正在使用批量加载。表中的列之一是日期,但在 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.

谁能帮忙,我想念的地方

标签: amazon-web-servicessnowflake-cloud-data-platformamazon-emr

解决方案


该错误表明日期不是作为空值到达的。相反,它们以空白字符串的形式出现。您可以通过几种不同的方式解决这个问题。

最简洁的方法是在该列的 COPY INTO 语句中使用 TRY_TO_DATE 函数。尝试将空白字符串转换为日期时,此函数将返回数据库 null:

https://docs.snowflake.com/en/sql-reference/functions/try_to_date.html#try-to-date


推荐阅读