【发布时间】:2021-01-03 20:39:27
【问题描述】:
我正在尝试将 pandas DataFrame 转储到现有的 Snowflake 表中(通过 jupyter 笔记本)。 当我运行下面的代码时,没有出现错误,但没有数据写入目标 SF 表(df 有大约 800 行)。
from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL
sf_engine = create_engine(
URL(
user=os.environ['SF_PROD_EID'],
password=os.environ['SF_PROD_PWD'],
account=account,
warehouse=warehouse,
database=database,
)
)
df.to_sql(
"test_table",
con=sf_engine,
schema=schema,
if_exists="append",
index=False,
chunksize=16000,
)
如果我查看 SF 历史记录,我可以看到查询显然运行没有问题:
如果我从 SF History UI 中提取查询并在 Snowflake UI 中手动运行,则数据会显示在目标表中。
如果我尝试使用 locopy,我会遇到同样的问题。
如果表不存在,上面的代码创建表并删除行没有问题。
这就是奇怪的地方。当我运行pd.to_sql 命令尝试追加然后删除目标表时,如果我随后发出select count(*) from destination_table,则该名称仍然存在并且(仅)具有我一直试图删除的数据。认为这可能是区分大小写的表命名情况?
感谢任何见解:)
【问题讨论】:
标签: python pandas sqlalchemy snowflake-cloud-data-platform