Snowflake Python Pandas连接器-使用FETCH_PANDAS_ALL时出现未知错误 [英] Snowflake Python Pandas Connector - Unknown error using fetch_pandas_all

查看:20
本文介绍了Snowflake Python Pandas连接器-使用FETCH_PANDAS_ALL时出现未知错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Python pandas 连接器连接到Snowflake。

我在Windows上使用的是蟒蛇发行版,但是卸载了现有的连接器和pyrow,然后按照本页上的说明重新安装:https://docs.snowflake.com/en/user-guide/python-connector-pandas.html

我有以下版本

pandas 1.0.4 py37h47e9c7a_0

pip 20.1.1 py37_1

pyrow 0.17.1 ppi_0 ppi

python 3.7.7 h81c818b_4

雪花-连接器-python 2.2.7 ppi_0 ppi

运行本文档的步骤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时出现未知错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆