Snowflake Python Pandas Connector - Неизвестная ошибка при использовании fetch_pandas_all - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь подключиться к Snowflake с помощью коннектора python pandas.

Я использую дистрибутив anaconda на Windows, но удалил существующий коннектор и pyarrow и переустановил, используя инструкции на этой странице : https://docs.snowflake.com/en/user-guide/python-connector-pandas.html

У меня есть следующие версии

pandas 1.0.4 py37h47e9c7a_0

pip 20.1.1 py37_1

pyarrow 0.17.1 pypi_0 pypi

python 3.7.7 h81c818b_4

снежинка-коннектор- python 2.2.7 pypi_0 pypi

При выполнении шага 2 этого документа: https://docs.snowflake.com/en/user-guide/python-connector-install.html, я получаю: 4.21.2

При попытке использовать fetch_pandas_all() я получаю сообщение об ошибке: NotSupportedError: Unknown error

введите описание изображения здесь

Я использую следующий код:

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() работал?

1 Ответ

0 голосов
/ 18 июня 2020

Что происходит, когда вы запускаете этот код?

from snowflake import connector
import time

import logging
for logger_name in ['snowflake.connector', 'botocore', 'boto3']:
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.DEBUG)
    ch = logging.FileHandler('test.log')
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(logging.Formatter('%(asctime)s - %(threadName)s %(filename)s:%(lineno)d - %(funcName)s() - %(levelname)s - %(message)s'))
    logger.addHandler(ch)

from snowflake.connector.cursor import CAN_USE_ARROW_RESULT

import  pyarrow
import pandas as pd

print('CAN_USE_ARROW_RESULT', CAN_USE_ARROW_RESULT)

Это выведет, истинно ли CAN_USE_ARROW_RESULT, и если это не так, то pandas не будет работать. Когда вы установили pip, какой из них вы запустили?

pip install snowflake-connector- python pip install snowflake-connector-python [pandas]

Кроме того, какие ОС вы бежите?

...