ppi*_*cus 2 python pandas snowflake-cloud-data-platform snowflake-connector
我正在尝试将 pandas 数据帧加载到雪花表中。
这是我的 SF 表 DDL:
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)
);
Run Code Online (Sandbox Code Playgroud)
这是我的数据框的结构:
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
Run Code Online (Sandbox Code Playgroud)
根据 Snowflake 的文档,我编写了以下代码来帮助我将数据帧写入数据库:
success, nchunks, nrows, _ = write_pandas(conn,
df,
"MY_DB.MY_SCHEMA.MY_TABLE",
quote_identifiers=False)
print(str(success) + ', ' + str(nchunks) + ', ' + str(nrows))
Run Code Online (Sandbox Code Playgroud)
我遇到的问题如下:
ProgrammingError: 001003 (42000): SQL compilation error:
syntax error line 1 at position 133 unexpected 'Name'.
Run Code Online (Sandbox Code Playgroud)
我已经使用此函数来摄取其他数据帧,并且过去没有出现任何问题(所以我知道我的连接/连接器正在工作) - 也许我的数据或我在 Snowflake 中设置表的方式有问题?我有一些 NaN 值..这可能是一个问题吗?
以下是数据摘录:
我还检查了其他 SO 答案,例如此处和此处,但它们与我的问题没有直接关系。我对 Snowflake 和 SQL 比较陌生,因此我们将不胜感激任何解决此问题的帮助!
您的 df 列名称中有空格,您必须将quote_identifiers参数设置为 true :
success, nchunks, nrows, _ = write_pandas(conn,
df,
"MY_DB.MY_SCHEMA.MY_TABLE",
quote_identifiers=True)
Run Code Online (Sandbox Code Playgroud)
虽然我不确定雪花是否能够将其映射到您的列,其中它们有下划线而不是空格
| 归档时间: |
|
| 查看次数: |
16386 次 |
| 最近记录: |