首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用OBDC驱动程序将Pandas数据帧加载到Redshfit服务器?

如何使用OBDC驱动程序将Pandas数据帧加载到Redshfit服务器?
EN

Stack Overflow用户
提问于 2018-07-20 22:44:52
回答 1查看 121关注 0票数 1

我对Python编程比较陌生。我已经彻底地搜索了之前回答的与此相关的问题,但找不到一个好的解决方案。

问题:我打算使用系统中安装的ODBC驱动程序来连接Red-shift数据库。在DSN中配置所有实体(服务器名称、主机、端口、用户名和密码)。我成功地建立了到数据库的连接,并使用以下代码读取表:

代码语言:javascript
复制
import pyodbc
import pandas as pd
conn = pyodbc.connect('DSN=AWSDW')
Query = """select *
            from <table_name>
            limit 10"""
df2 = pd.read_sql(Query,conn)

但问题是我可以在Redshift中加载这个数据帧。下面是我正在尝试运行的代码:

代码语言:javascript
复制
engine = sqlalchemy.create_engine('postgresql+pyodbc://AWSDW')
df2.to_sql('Abhi_Testing_Python_2'
           ,engine
           ,schema='sandbox'
           ,index=False
           ,if_exists = 'replace')

我知道在create engine的连接字符串中需要做一些事情。但不知道是什么?

我对使用其他方法持开放态度,只要我不需要在代码中硬编码我的用户名和密码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-28 04:07:26

我发现你不能在pyodbc驱动中使用postgresql方言。

https://www.codepowered.com/manuals/SQLAlchemy-0.6.9-doc/html/core/engines.html

因此,我最终没有使用我安装的Amazon驱动程序。改为使用psycopg2。

代码语言:javascript
复制
connection_string = 'postgresql+psycopg2://'+username+':'+password+'@'+HOST+':'+str(PORT)+'/'+DATABASE
    engine = create_engine(connection_string)

这是可行的。唯一的缺点是我不得不在我的代码中硬编码主机名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51445082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档