簡體   English   中英

如何將 pandas df 從 Azure 數據塊寫入雪花?

[英]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 種身份驗證方法:

  • 雪花用戶名/密碼
  • 雪花 RSA 密鑰
  • SSO 由 Microsoft Azure AD、Okta 等聯合...

您可以與您的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM