[英]How to write pandas df to snowflake from Azure databricks?
我很難從 Azure 數據塊寫入雪花。
我有以下代碼,我試圖用它來將 pandas df 寫入雪花表,但我一直收到我的用戶名或密碼不正確。
我已經嘗試使用用戶名和密碼在我的瀏覽器上登錄,沒有問題。 此外,我還嘗試使用與此帳戶關聯的 email 地址,但出現了同樣的錯誤。 我究竟做錯了什么?:
import pandas as pd
import sqlalchemy as sa
from sqlalchemy import *
import snowflake.connector
from snowflake.connector.pandas_tools import pd_writer
def savedfToSnowflake(df):
engine = snowflake.connector.connect(
user='xxxx',
password='xxxx',
role='xxxx',
account='xxxx',
warehouse='xxxx',
database='xxxx',
schema='xxxx',
autocommit=xxxx
)
try:
connection = engine.connect()
print("Connected to Snowflake ")
df3.to_sql('table_name', con=connection, index=False,
if_exists='append') # make sure index is False, Snowflake doesnt accept indexes
print("Successfully saved data to snowflake")
except Exception as ex:
print("Exception occurred {}".format(ex))
# finally:
# # close connection
# if connection:
# connection.close()
# if engine:
# engine.dispose()
def main():
savedfToSnowflake(df3)
if __name__ == '__main__':
main()
如果您通過 SSO 提供商在瀏覽器中登錄 Snowflake,即您單擊“使用 AzureAD 登錄”,而不是輸入 Snowflake 用戶名和密碼,則您沒有可用於此連接命令的 Snowflake 用戶名和密碼.
Snowflake 有用戶,以及作為該用戶進行身份驗證的方法。 通常,您有 3 種身份驗證方法:
您可以與您的 Snowflake 管理員聯系,了解為您的用戶獲取用戶名/密碼或 RSA 密鑰設置,以允許您以這種方式進行連接。 或者,根據您使用的編程環境,您可以使用“外部瀏覽器”身份驗證方法。
engine = snowflake.connector.connect(
user="<login_name>", #You can get it by executing in UI: desc user <username>;
account="<account-name>", #Add all of the account-name between https:// and snowflakecomputing.com
authenticator="externalbrowser",
)
有關更多信息,請參見此處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.