小编tan*_*nia的帖子

将 Pandas 中的 VARIANT 类型插入到 Snowflake 中

我正在尝试将 Pandas 数据帧中的数据插入 Snowflake 中的表中,但我无法弄清楚如何正确执行此操作。首先,我在 Snowflake 中创建了一个表,其中包含一些类型为 的列VARIANT。例如:

CREATE OR REPLACE TABLE
    mydatabase.myschema.results(
        DATE date, 
        PRODUCT string, 
        PRODUCT_DETAILS variant, 
        ANALYSIS_META variant,
        PRICE float
)
Run Code Online (Sandbox Code Playgroud)

然后在 Pandas 中,我有一个像这样的数据框:

import pandas as pd
record = {'DATE': '2020-11-05',
 'PRODUCT': 'blue_banana',
 'PRODUCT_DETAILS': "{'is_blue': True, 'is_kiwi': nan}",
 'ANALYSIS_META': "None",
 'PRICE': 13.02}
df = pd.DataFrame(record, index=[0])
Run Code Online (Sandbox Code Playgroud)

如您所见,我已将列编码VARIANT为字符串,正如我从snowflake-connector文档中了解到的那样,SnowflakeVARIANT类型映射到strPandas 中的 dtype,反之亦然。

所以,到目前为止我所做的尝试如下:

from snowflake.connector import pandas_tools

pandas_tools.write_pandas(
                conn=conn,
                df=df,
                table_name="results",
                schema="myschema",
                database="mydatabase")
Run Code Online (Sandbox Code Playgroud)

这确实有效,返回

(True,
 1,
 1,
 [('czeau/file0.txt', …
Run Code Online (Sandbox Code Playgroud)

python pandas snowflake-cloud-data-platform

7
推荐指数
1
解决办法
5710
查看次数