Snowflake cloud data platform 雪花-复制到。。。忽略日期\输入\格式设置

Snowflake cloud data platform 雪花-复制到。。。忽略日期\输入\格式设置,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,以下说明旨在使用特定格式导入日期 alter session set DATE_INPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'; 然而,这似乎对以下方面没有影响: copy into schema.table from s3://bucket/file.parquet credentials=(aws_key_id='...' aws_secret_key='...') match_by_column_name=case_insens

以下说明旨在使用特定格式导入日期

alter session set DATE_INPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
然而,这似乎对以下方面没有影响:

copy into schema.table
    from s3://bucket/file.parquet
    credentials=(aws_key_id='...' aws_secret_key='...')
    match_by_column_name=case_insensitive
    file_format=(type=parquet);
这会导致如下错误:

sqlalchemy.exc.ProgrammingError: (snowflake.connector.errors.ProgrammingError) 100071 (22000):
Failed to cast variant value "2020-06-16 00:00:00.000" to DATE
当导入的拼花地板文件中的列具有上面为日期字段指定的格式时

这听起来确实像一个bug,因为上面的
复制到
场景理论上应该是更改
日期输入格式的典型用例


有没有办法解决这个问题?

日期输入格式应该会影响复制命令。该文档讨论了在日期转换时不支持变量列的时间戳

尽管TO_DATE接受时间戳值,但它不接受变量内部的时间戳


有趣-这有点令人惊讶,因为所讨论的拼花地板文件是从熊猫数据帧创建的,该数据帧绝对具有
datetime64[ns]
数据类型。雪花目标表中的数据类型是什么?它是一个
日期
列-我不确定雪花为什么会将有问题的拼花地板字段标识为变量-可能熊猫/fastparquet没有正确执行其工作Nowflake将拼花地板数据读取到单个变量列中。您可以使用类似的命令和函数查询变量列中的数据,就像查询JSON数据一样。啊,对了,但是这样我们就失去了自动列名匹配的好处。。。除非我们能够只转换一列(这个
date
列有问题),将其转换为时间戳,而将其余的保留为。。。