使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存。
下面是代码作用是将数据从数据库读取出来分批次写入txt文本文件,方便我们做数据的预处理和训练机器学习模型。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#%%
import pymssql as MySQLdb #这里是python3 如果你是python2.x的话,import MySQLdb
#数据库连接属性
hst = '188.10.34.18'
usr = 'sa'
passwd = 'p@ssw0rd'
db = 'HistoryTrace'
#总共多少数据
allData = 1674333
#每个批次多少条数据
dataOfEach = 20000
#批次
batch = ceil(allData / dataOfEach)
#文件名
global IDctrl
IDctrl = 1
filename = str (IDctrl) + '.txt'
#连接数据库
conn = MySQLdb.connect(host = hst,user = usr,password = passwd,database = db)
cur = conn.cursor()
while IDctrl<batch:
#读取数据库
sql = 'SELECT Longitude,Latitude,Altitude,VelComOfLong,VelComOfLati,Aircraft,Section,TimeMinus\
FROM dealed1 where ID > = ' + str(IDctrl) + ' and ID <' + str (IDctrl + dataOfEach)
cur.execute(sql)
rows = cur.fetchall()
#写文件
f = open (filename, 'w' )
f.writelines( str (rows))
#文件名加1
IDctrl + = 1
filename = str (IDctrl) + '.txt'
#关闭数据库连接
f.close()
conn.close()
|
以上这篇Python从数据库读取大量数据批量写入文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Tan_HandSome/article/details/79261413