Ошибка коннектора Snowflake: 001003 (42000): ошибка компиляции SQL (синтаксическая ошибка)
Я пытаюсь загрузить фреймворк pandas в таблицу Snowflake.
Вот мой DDL таблицы SF:
create or replace TABLE MY_TABLE (
WEBSITE VARCHAR(16777216),
ORGANIZATION_NAME VARCHAR(16777216),
ORGANIZATION_NAME_URL VARCHAR(16777216),
IPO_STATUS VARCHAR(16777216),
FOUNDED_DATE VARCHAR(16777216),
FOUNDED_DATE_PRECISION VARCHAR(16777216),
TOTAL_FUNDING_AMOUNT VARCHAR(16777216),
TOTAL_FUNDING_AMOUNT_CURRENCY VARCHAR(16777216),
TOTAL_FUNDING_AMOUNT_CURRENCY_USD VARCHAR(16777216),
LAST_FUNDING_AMOUNT VARCHAR(16777216),
LAST_FUNDING_AMOUNT_CURRENCY VARCHAR(16777216),
LAST_FUNDING_AMOUNT_CURRENCY_USD VARCHAR(16777216),
LAST_FUNDING_DATE VARCHAR(16777216),
INDUSTRIES VARCHAR(16777216),
INDUSTRY_GROUPS VARCHAR(16777216),
LAST_FUNDING_TYPE VARCHAR(16777216),
IT_SPEND VARCHAR(16777216),
IT_SPEND_CURRENCY VARCHAR(16777216),
IT_SPEND_CURRENCY_USD VARCHAR(16777216)
);
А вот структура моего фрейма данных:
Data columns (total 19 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Website 3924 non-null object
1 Organization Name 3924 non-null object
2 Organization Name URL 3924 non-null object
3 IPO Status 3924 non-null object
4 Founded Date 3837 non-null object
5 Founded Date Precision 3837 non-null object
6 Total Funding Amount 2397 non-null float64
7 Total Funding Amount Currency 2397 non-null object
8 Total Funding Amount Currency (in USD) 2397 non-null float64
9 Last Funding Amount 2259 non-null float64
10 Last Funding Amount Currency 2259 non-null object
11 Last Funding Amount Currency (in USD) 2259 non-null float64
12 Last Funding Date 2612 non-null object
13 Industries 3894 non-null object
14 Industry Groups 3894 non-null object
15 Last Funding Type 2612 non-null object
16 Aberdeen - IT Spend 1576 non-null float64
17 Aberdeen - IT Spend Currency 1627 non-null object
18 Aberdeen - IT Spend Currency (in USD) 1576 non-null float64
Согласно документации Snowflake , я написал следующий код, который поможет мне записать фрейм данных в мою базу данных:
success, nchunks, nrows, _ = write_pandas(conn,
df,
"MY_DB.MY_SCHEMA.MY_TABLE",
quote_identifiers=False)
print(str(success) + ', ' + str(nchunks) + ', ' + str(nrows))
Проблема, с которой я столкнулся, заключается в следующем:
ProgrammingError: 001003 (42000): SQL compilation error:
syntax error line 1 at position 133 unexpected 'Name'.
Я использовал эту функцию для приема других фреймов данных, и в прошлом не было проблем (поэтому я знаю, что мое соединение / коннектор работает) - возможно, что-то не так с моими данными или с тем, как я настроил таблицу в Snowflake ? У меня есть несколько значений NaN... может ли это быть проблемой?
Вот выдержка из данных:
Я также проверил другие ответы SO, например, здесь и здесь, но они не имеют прямого отношения к моей проблеме. Я относительно новичок в Snowflake и SQL, поэтому будет очень признателен за любую помощь в решении этой проблемы!
1 ответ
у вас есть пробелы в именах столбцов df, вы должны установить
quote_identifiers
параметр установлен в true :
success, nchunks, nrows, _ = write_pandas(conn,
df,
"MY_DB.MY_SCHEMA.MY_TABLE",
quote_identifiers=True)
хотя я не уверен, сможет ли снежинка сопоставить ее с вашими столбцами, где вместо пробела есть подчеркивание