将 Python 中的数据帧插入雪花空问题

时间:2021-03-17 23:00:46

标签: python pandas snowflake-cloud-data-platform

这是我的代码片段 -

import datetime
from snowflake import connector
from snowflake.connector.pandas_tools import write_pandas
import pandas as pd
import pickle


class SnowflakeDataFetcher:
    def __init__(self):
        self.username = '***'
        self.password = '***'
        self.ctx_a = connector.connect(user=self.username, password=self.password, account='***',
                                         warehouse='***', database='***', schema='***', role='***')

    def upload_data(self, mode, data, tablename, virt_date):
        if mode == 'test_table_upload':
            data.info()
            query_output = write_pandas(self.ctx_a, data, table_name=tablename)
            print("Success!")


if __name__ == "__main__":
    snowflake_data_fetcher = SnowflakeDataFetcher()
    with open(r'***', 'rb') as gtc_data_pickle:
        gtc_data = pickle.load(gtc_data_pickle)
        snowflake_data_fetcher.upload_data('test_table_upload', gtc_data, "TEST_DATA", datetime.date(2021, 3, 17))

雪花上的桌子是这样的: enter image description here

这是数据框的样子:

enter image description here

这是我的 data.info() 对于我的 gtc 数据框的样子:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10056 entries, 0 to 10055
Data columns (total 3 columns):
 #   Column    Non-Null Count  Dtype 
---  ------    --------------  ----- 
 0   Datetime  10056 non-null  object
 1   Date      10056 non-null  object
 2   GTC Name  10056 non-null  object
dtypes: object(3)
memory usage: 235.8+ KB

我不明白为什么会出现此错误:

snowflake.connector.errors.ProgrammingError: 100072 (22000): NULL result in a non-nullable column

我的数据框中没有看到任何空值,但我仍然收到此错误。帮助!

1 个答案:

答案 0 :(得分:1)

问题似乎与“GTC 名称”中的空格字符有关。如果您使用 GTC_Name(在您的 DataFrame 和表上),它将起作用。

相关问题