我最终希望构建一个脚本-1.将我登录到我的redshift集群-2.运行DROP TABLE IF EXISTS语句-3.重新创建表-4.将来自Pandas DataFrame对象的数据插入表中
我可以用2个脚本来完成它-一个完成步骤1-3,然后一个2d完成步骤4。我想知道是否可以在一个脚本中完成。在以下脚本中,我尝试使用2个游标来完成此操作-但没有运气。
import pyodbc
import getpass
import pandas as pd
server = server name
database = db
user = getpass.getuser()
pwd = getpass.getpass("User Name : %s" % user)
port = port
df = pd.read_csv("file.csv")
cnxn = pyodbc.connect('DRIVER={Amazon Redshift (x64)};SERVER='+server+';DATABASE='+database+';UID='+user+';PWD='+pwd+';Port='+port+'')
cursor1 = cnxn.cursor()
cursor1.execute("DROP TABLE IF EXISTS billtest2; CREATE TABLE billtest2 (symbols varchar(15), leverages int);")
cursor2 = cnxn.cursor()
# Insert DataFrame recrds one by one.
for index, row in df.iterrows():
cursor2.execute("INSERT INTO billtest2 ([symbols],[leverages]) values(?,?)", row['symbols'], row['leverages'])
cnxn.commit()
cnxn.close()
我已经匿名化了连接,但是连接有效-这仅仅是我想创建并插入一个看似无效的表的事实。
我是Python的新手,希望在此获得更多指导
您是否尝试过SQLAlchemy。