pyodbc,一步创建并插入红移表的方法

2024-07-04 18:19:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我最终希望构建一个脚本 - 1. 将我登录到我的红移群集 - 2. 运行DROP TABLE IF EXISTS语句 - 3. 重新创建表 - 4. 将数据框对象中的数据插入表中

我可以用两个脚本来完成它——一个完成步骤1-3,然后是一个完成步骤4的2d脚本。我想知道这是否可以在一个脚本中完成。在下面的脚本中,我尝试使用两个游标来完成这一事实——但没有运气

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新手,希望在这里得到更多指导


Tags: import脚本ifserverportexiststabledrop
1条回答
网友
1楼 · 发布于 2024-07-04 18:19:08

你试过炼金术吗

或者亚马逊红移方言的SQLAlchemy在您的情况下

From sqlalchemy import create_engine
Import pandas as pd
conn = create_engine('redshift+psycopg2://username@host.amazonaws.com:5439/database')
df = pd.read_csv("file.csv")
df.to_sql('your_table',conn,index = False,if_exists = 'replace')

在此之前,您可能需要安装pip install sqlalchemy-redshift

如何安装软件包-&燃气轮机Here

此外,您还可以探索更多here

相关问题 更多 >

    热门问题