【发布时间】:2018-07-10 08:28:04
【问题描述】:
我正在尝试将 pandas 数据框上传到 Vertica 数据库 能够使用 sqlalchemy 设置引擎和查询数据库。
但是当我尝试从 pandas 数据帧上传数据时,由于类型“TEXT”不存在而收到错误消息。我使用的是 Windows 10,并创建了 ODBC 连接。
import sqlalchemy as sa
engine = sa.create_engine('vertica+pyodbc:///?odbc_connect=%s' %(urllib.parse.quote('DSN=TESTDB'),))
sql_query = "select * from sample_table"
df = pd.read_sql_query(sql_query, con=engine) # this works, get the data as required in the dataframe
*df.apply[Do various data transformations as required]*
# Write back to the database
df.to_sql(name='sample_table_cleaned', con = engine, schema = "Dev" , if_exists = 'append', index = True)
上面的代码 (df.to_sql) sn-p 出现错误:ProgrammingError: (pyodbc.ProgrammingError) ('42704', '[42704] ERROR 5108: Type "TEXT" does not exist \n (5108) (SQLExecDirectW)')
任何人都可以帮助解决这个问题,
提前致谢!!
【问题讨论】:
标签: python pandas sqlalchemy vertica