我有一个大的sql文件(20gb),我想转换成csv。我打算把文件装入Stata进行分析。我有足够的内存来加载整个文件(我的计算机有32GB的内存)
问题是:到目前为止,我在Python上找到的解决方案(sqlite3)似乎需要比当前系统更多的RAM:
这是密码
import sqlite3
import pandas as pd
con=sqlite3.connect('mydata.sql')
query='select * from mydata'
data=pd.read_sql(query,con)
data.to_csv('export.csv')
con.close()
sql文件包含大约15个变量,可以是时间戳、字符串或数值。没什么特别的。
我认为一种可能的解决方案是一次读取sql并写入csv文件一行。但是,我不知道如何做到这一点(在R或Python中)
任何帮助都非常感谢!
在Windows命令行或UNIX shell中使用sqlite3命令行程序,如下所示:
如果mydata.sql不在当前目录中,请使用路径,在Windows上使用正斜杠而不是反斜杠。
交替运行sqlite3
并在sqlite提示下输入以下命令:
(或者把它们放到一个名为
run
的文件中,比方说,并使用sqlite3 < run
。在mysql数据库中加载
.sql
文件并将其导出为CSV。在mysql数据库中加载mysql转储文件的命令。
创建MySQL数据库
命令将MySQL表导出为CSV
您可以成批读取SQL数据库并将其写入文件,而不是一次读取整个数据库。有关如何添加到现有CSV文件的信息,请记入How to add pandas data to an existing csv file?。
相关问题 更多 >
编程相关推荐