1

我正在尝试将熊猫数据框加载到雪花表中。

这是我的 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)
);

这是我的数据框的结构:

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 比较陌生,所以任何解决这个问题的帮助将不胜感激!

4

1 回答 1

2

您的 df 列名称中有空格,您必须将quote_identifiers参数集设置为 true :

success, nchunks, nrows, _ = write_pandas(conn, 
                                          df, 
                                          "MY_DB.MY_SCHEMA.MY_TABLE", 
                                          quote_identifiers=True)

虽然我不确定雪花是否能够将其映射到您的列中,它们有下划线而不是空格

于 2021-11-22T15:16:35.760 回答