Импортировать CSV-файл на сервер SQL, размещенный в Amazon RDS, с помощью pyodbc - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь импортировать файл csv, чтобы заполнить базу данных, размещенную на сервере Amazon RDS, я использую pyodb c для импорта файла csv.

Вот мой код

import pyodbc
import pandas as pd

stock_table = pd.read_csv("/Users/xxx/Documents/Web Scraping/stocks_table.csv")
stock_table.head()

df = pd.DataFrame(stock_table)
print(df)

server = 'xxx.xyxy.xxx.rds.amazonaws.com'
database = 'database'
username = 'username'
password = 'admin'

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

cursor = cnxn.cursor()

# Create Table
cursor.execute('CREATE TABLE stocks (Date datetime, Close float(64), Volume float(64), Open float(64), High float(64), Low float(64), stockSymbol nvarchar(50), stock_description_id int, sector nvarchar(80), industry nvarchar(80), one_year_target float, exchange nvarchar(20), percentageChange float(64), priceChange float(64))')

# Insert DataFrame to Table
for row in df.itertuples():
    cursor.execute('''
                INSERT INTO database.dbo.stocks (Date, Close, Volume, Open, High, Low, stockSymbol,
                stock_description_id, sector, industry, one_year_target, exchange, percentageChange, priceChange)
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
                ''',
                    row.Date, 
                    row.Close,
                    row.Volume,
                    row.Open,
                    row.High,
                    row.Low,
                    row.stockSymbol,
                    row.stock_description_id,
                    row.sector,
                    row.industry, 
                    row.one_year_target,
                    row.exchange,
                    row.percentageChange,
                    row.priceChange
                )
conn.commit()

Но когда я пытаюсь зафиксировать его, появляется эта ошибка

Error                                     Traceback (most recent call last)
<ipython-input-18-df4a64bb6bf1> in <module>
      4 password = 'admin'
      5 
----> 6 cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
      7 
      8 cursor = cnxn.cursor()

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)")

Есть ли кто-нибудь, кто мог бы помочь с этим? Заранее спасибо!

1 Ответ

0 голосов
/ 09 мая 2020

Вам не хватает драйвера ODB C, см. Документацию по установке здесь: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

...