【问题标题】:Snowflake pandas Connector Kills Kernel雪花熊猫连接器杀死内核
【发布时间】:2020-10-18 20:41:21
【问题描述】:

我在使用 Snowflake 的 pandas 连接器时遇到问题。

此代码的最后一行导致 python 内核立即死亡。有关如何诊断这种情况的任何建议?

import pyarrow
import snowflake.connector
import pandas as pd

ctx = snowflake.connector.connect(
    user=********,
    password=********,
    account=********,
    warehouse='compute_wh',
    database='SNOWFLAKE_SAMPLE_DATA',
    schema='WEATHER'
)
cs = ctx.cursor()
cs.execute('select * from weather_14_total limit 10')
cs.fetch_pandas_all()

请注意,如果将 fetch_pandas_all() 替换为 fetchone(),则一切正常。

提前致谢。

  • 基思

【问题讨论】:

  • 有什么错误可以分享吗?
  • 我得到的只是一个对话框面板,打开时显示“内核正在重新启动。内核似乎已经死机。它将自动重新启动。”
  • 可能是因为您实际上并没有使用该语句创建数据框吗?最后一行应该是:df = cs.fetch_pandas_all() 其中 df 成为数据框的名称。我不希望这会杀死内核,但值得一试,对吧?
  • 不幸的是,它仍然会杀死内核。
  • 您应该将此问题报告给 Snowflake 支持。我相信这是 Snowflake 连接器的相当新的功能,所以他们可能会想看看它。

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


【解决方案1】:

这对我有用:

import pandas as pd 
from snowflake.connector import connect 

qry = "SELECT * FROM TABLE LIMIT 5"

con = connect(
  account = 'ACCOUNT',
  user = 'USER',
  password = 'PASSWORD',
  role= 'ROLE',
  warehouse = 'WAREHOUSE',
  database = 'DATABASE',
  schema = 'SCHEMA'
)

df = pd.read_sql(qry, con)

但是,对于类似问题,这是最受好评的答案:

import pandas as pd

from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL

url = URL(
  account = 'xxxx',
  user = 'xxxx',
  password = 'xxxx',
  database = 'xxx',
  schema = 'xxxx',
  warehouse = 'xxx',
  role='xxxxx',
  authenticator='https://xxxxx.okta.com',
)
engine = create_engine(URL)
connection = engine.connect()

query = '''
  select * from MYDB.MYSCHEMA.MYTABLE
  LIMIT 10;
'''

df = pd.read_sql(query, connection)

【讨论】:

    【解决方案2】:

    我们的团队上周遇到了同样的问题。我们最终的解决方法是改用 read_sql 命令。

    【讨论】:

      【解决方案3】:

      它抛出的 pyarrow 警告不容忽视。当前的 databricks LTS 9.1 具有不兼容的 pacakge 版本,因此 connector.fetch_pandas_all() 会导致 python REPL 崩溃。

      解决办法:

      转到集群 -> 库 -> 安装新的 -> PyPI -> pyarrow==5.0.0 -> 重新启动

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-22
        • 2016-06-26
        • 2013-04-24
        • 2014-10-20
        • 1970-01-01
        • 2023-03-22
        • 2023-04-09
        • 1970-01-01
        相关资源
        最近更新 更多