pandas Python中的批量加载数据问题

vatpfxk5  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(117)

我想使用pandas将数据批量加载到snowflake warehouse。请在下面找到完整的要求:
1.我在 snowflake 表中有源数据。我在一个dataframe中阅读了同样的内容。
1.在将数据加载到dataframe中之后,我使用一些pandas函数对数据进行了更改。
1.在这些更改之后,我需要再次加载Snowflake中的数据。
文件大小:200k records
我尝试过的事情:
1.首先创建了for循环,它在go时创建了insert语句,并加载了相同的语句。这个脚本运行了大约4个小时,加载了大约9k条记录(因此这不是一个可行的选项)。
1.然后我在数据库上执行之前创建了整个插入查询。这种方法也是失败的,需要很多时间(和上面的方法一样)。
1.我尝试了并行处理,也为数据创建了批处理。还是没找到。
1.后来我尝试复制到方法和它的工作。
但我不想使用复制到,因为它只是 snowflake 具体。
请帮助我使用Python批量加载数据。

qcbq4gxm

qcbq4gxm1#

尝试使用snowflake-connector-python库

import snowflake.connector

# Create a connection
conn = snowflake.connector.connect(
    user='<your_username>',
    password='<your_password>',
    account='<your_account_url>',
    warehouse='<your_warehouse>',
    database='<your_database>',
    schema='<your_schema>'
)

Snowflake提供copy_into方法来高效地批量加载数据。您可以按如下方式使用它:

import snowflake.connector.pandas_tools as sfpd

# Assuming you have a DataFrame called 'df' with your data
sfpd.write_pandas(conn, df, '<snowflake_table_name>')

这种方法使用Snowflake Connector的内置功能进行批量加载,这应该比一次插入一行快得多。

相关问题