熊猫从雪花中提取数据

时间:2021-02-08 18:06:55

标签: python pandas snowflake-cloud-data-platform

我有以下代码用于将数据从雪花数据库返回到熊猫数据帧。一切正常,直到我安装了其他一些软件包,现在我收到一个未知错误:

def getsnowflake(sql):
    src_account = 'xxx'
    src_region = 'xxx'
    un_database = 'xxx'
    un_warehouse = 'xxx'
    un_user = 'xxx'
    un_password = 'xxx'
    un_role = 'xxx'
    ctx_src = snowflake.connector.connect(user=un_user, password=un_password, account=src_account, 
      region=src_region, database=un_database, warehouse=un_warehouse, role=un_role)
    csrc = ctx_src.cursor()
    result = csrc.execute(sql).fetch_pandas_all()
    return result

我很确定这与 pyarrow 版本不兼容有关。我检查了这个:

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 错误

我使用的是 python 3.7.6。然后我使用 powershell 创建了一个虚拟环境:

python -m venv venv

然后我使用了网站上的这个需求文件:

https://github.com/snowflakedb/snowflake-connector-python/tree/master/tested_requirements

我使用了 requirements_37.req 并安装了它:

pip install -r requirements.txt 

然后运行以下命令来安装连接器:

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

但是错误还是一样。我还检查过,如果我不将它放入数据框中,我确实可以从数据库中得到结果,所以“唯一”不起作用的是 '''.fetch_pandas_all()''' 位,但正如过去所说的那样工作。 任何指针将不胜感激

0 个答案:

没有答案