【发布时间】:2015-05-28 01:54:30
【问题描述】:
我能够生成如下引擎:
import pandas as pd
import sqlalchemy as sa
url = sa.url.URL(drivername='vertica+pyodbc',
username='username',
password='****',
host='vertica')
engine = sa.create_engine(url)
我可以读取数据,例如
pd.read_sql_query("SELECT * FROM my_schema.tablename", engine)
但是当我尝试写入数据时:
import numpy as np
df = pd.DataFrame(np.random.randn(10, 5))
df.to_sql("my_schema.random_table", engine)
我得到了错误
公共架构的权限被拒绝\n (4367) (SQLExecDirectW)') u'\nCREATE TABLE "my_schema.random_table"
我认为问题在于“my_schema.random_table”被引号括起来,这使 Vertica 认为我想在基本(公共)架构而不是 my_schema 中创建此表。有没有办法可以在 ODBC url 中指定我想要的架构?
【问题讨论】:
-
您可以尝试将搜索路径设置为架构(
SET SEARCH_PATH TO my_schema;),然后执行CREATE
标签: python sql sqlalchemy vertica