首页 > 解决方案 > 如何处理雪花连接器 pd_writer 带括号的列

问题描述

我正在通过snowflake-connector. 中的列df(,)在里面。我正在尝试用df.to_sql(table, con=engine, index=False, if_exists='replace', method=pd_writer).

  1. 这是动态创建表。
  2. dfin parquet 文件转换PUT为 S3 存储桶。
  3. 尝试对COPYparquet 数据进行处理,table但出现异常。

复制 sql -

COPY INTO "DB1.SCHM1.T1" /* Python:snowflake.connector.pandas_tools.write_pandas() */
("Name", "Year(1)", "Year(2)") 
FROM 
(SELECT $1:Name, $1:Year(1), $1:Year(2) FROM @"djaks") 
FILE_FORMAT=(TYPE=PARQUET COMPRESSION=auto) 
PURGE=TRUE ON_ERROR=abort_statement

错误 -

SQL Compilation error: Syntax error line 1 at position X unexpected '1'. syntax error line 1 at position X ','.

这是因为语法$1:Year(1)。我无法更改列名,其他解决方案是什么?

标签: pythonsqlsnowflake-cloud-data-platformsnowflake-connector

解决方案


尝试将列标识符放在引号中: (SELECT $1:"Name", $1:"Year(1)", $1:"Year(2)" FROM @"djaks")

未加引号的标识符不能在雪花中包含 ( 或 )。

https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html


推荐阅读