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表中。
添加回答
舉報