本文介绍了Snowflake Python Pandas连接器-使用FETCH_PANDAS_ALL时出现未知错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Python pandas 连接器连接到Snowflake。
我在Windows上使用的是蟒蛇发行版,但是卸载了现有的连接器和pyrow,然后按照本页上的说明重新安装:https://docs.snowflake.com/en/user-guide/python-connector-pandas.html
我有以下版本
运行本文档的步骤2:https://docs.snowflake.com/en/user-guide/python-connector-install.html时,我得到:4.21.2
尝试使用fetch_pandas_all()
时收到错误:NotSupportdError:未知错误
我使用的代码如下:
import snowflake.connector
import pandas as pd
SNOWFLAKE_DATA_SOURCE = '<DB>.<Schema>.<VIEW>'
query = '''
select *
from table(%s)
LIMIT 10;
'''
def create_snowflake_connection():
conn = snowflake.connector.connect(
user='MYUSERNAME',
account='MYACCOUNT',
authenticator = 'externalbrowser',
warehouse='<WH>',
database='<DB>',
role='<ROLE>',
schema='<SCHEMA>'
)
return conn
con = create_snowflake_connection()
cur = con.cursor()
temp = cur.execute(query, (SNOWFLAKE_DATA_SOURCE)).fetch_pandas_all()
cur.close()
我想知道我还需要安装/升级/检查什么才能使fetch_pandas_all()
正常工作?
编辑:在下面发布答案后,我意识到问题出在SSO(单点登录),Authenticator=‘External alBrowser’。使用独立帐户时,我可以提取。
推荐答案
我找到了一种解决方法,可以通过依赖FETCHALL()而不是FETCH_ALL_PANDAS()来避免单点登录错误:
try:
cur.execute(sql)
all_rows = cur.fetchall()
num_fields = len(cur.description)
field_names = [i[0] for i in cur.description]
finally:
cur.close()
con.close()
df = pd.DataFrame(all_rows)
df.columns = field_names
这篇关于Snowflake Python Pandas连接器-使用FETCH_PANDAS_ALL时出现未知错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!