1 回答
TA贡献1111条经验 获得超0个赞
将pandas.DataFrame.to_sql与 Snowflake 一起使用时,需要使用 SQLAlchemy 引擎作为连接。
当您使用 时df.to_sql
,您需要传入 SQLAlchemy 引擎而不是标准 Snowflake 连接对象(也不是您尝试做的游标)。您需要snowflake-sqlalchemy
使用 pip 安装,但不需要安装snowflake-connector-python
,因为 Snowflake-sqlalchemy 会为您完成此操作。
这是一个例子:
from sqlalchemy import create_engine
import os
import pandas as pd
snowflake_username = os.environ['SNOWFLAKE_USERNAME']
snowflake_password = os.environ['SNOWFLAKE_PASSWORD']
snowflake_account = os.environ['SNOWFLAKE_ACCOUNT']
snowflake_warehouse = os.environ['SNOWFLAKE_WAREHOUSE']
snowflake_database = 'test_db'
snowflake_schema = 'public'
if __name__ == '__main__':
engine = create_engine(
'snowflake://{user}:{password}@{account}/{db}/{schema}?warehouse={warehouse}'.format(
user=snowflake_username,
password=snowflake_password,
account=snowflake_account,
db=snowflake_database,
schema=snowflake_schema,
warehouse=snowflake_warehouse,
)
)
df = pd.DataFrame([('Mark', 10), ('Luke', 20)], columns=['name', 'balance'])
df.to_sql('TEST_TABLE', con=engine, schema='public', index=False, if_exists='append')
每次我运行上面的脚本时,马可福音和路加福音的记录都会附加到我的test_db.public.test_table表中。
添加回答
举报