我需要从csv文件加载一个大型数据集(现在是20gb,但将来会是100 GB)。我在python(PyCharm)中使用MySQLdb模块。我还需要只选择某些列。到目前为止,我已经尝试过这个:
import csv
import MySQLdb
mydb = MySQLdb.connect(host='localhost',
user='root',
passwd='',
db='mydb')
cursor = mydb.cursor()
csv_data = csv.reader(file('collected_quotes_sample.csv'))
for row in csv_data:
cursor.execute('INSERT INTO testcsv(RIC, Date, Time, Ask, Bid, BAS, window ) VALUES(%s, %s, %s, %s, %s, %s, %s)', row)
#close the connection to the database.
mydb.commit()
cursor.close()
print "Done"
但它提供了许多错误。我是python和SQL数据库的新手,所以我不熟悉命令/代码。所以我有几个问题:
1. with MySQLdb.connect( host,user,passwd,db etc), what are host, user, password etc? to my understanding, they are credentials for my account in the computer. so do I need to put in my user account and password?
2. What does mydb.cursor do?
3. How to upload a csv file into a SQL database? and after the database is created, I can write a python script to work on it and there is no need to re read/create the database?
非常感谢!
答案 0 :(得分:0)
回答你的问题
- 与MySQLdb.connect(主机,用户,密码,数据库等),什么是主机,用户,密码等?根据我的理解,他们是我的凭据 帐户在电脑里。所以我需要输入我的用户帐户和 密码?
醇>
localhost
(127.0.0.1),并且端口号是您在创建服务器时定义的。启动服务器后,可以将一个或多个客户端连接到数据库服务器。然后,您需要拥有具有所有权限的超级用户(如root
)和其他几个普通用户(可能具有较少的权限)。
- mydb.cursor做什么?
醇>
cursor
对象,但由于您使用MySQLdb作为Python包装器,因此您需要将其用作DB-API要求您以这种方式与它们接口(游标对象是Python DB-API 2.0中指定的抽象)。
- 如何将csv文件上传到SQL数据库?在创建数据库之后,我可以编写一个python脚本来处理它 没有必要重新读取/创建数据库?
醇>
read
。但是您可以将常用的SQL(或调用一些存储的函数/过程)放入Python代码中,这样您就可以调用一个函数来按照您想要的方式检索数据。 一般来说,我认为你应该在急于使用之前理解more about MySQL basics。以及如何Install MySQL on Windows
答案 1 :(得分:0)
如果你想用Python来创建一个带有Python的SQL数据库,你应该尝试使用SQLite:
import sqlite3
conn = sqlite3.connect("brand_new_db.db")
你完成了。
网上有很多教程。例如,This可能是一个很好的起点。