使用Python或R将非常大的sql文件导出到csv

ℕʘʘḆḽḘ

我有一个很大的sql文件(20 GB),我想将其转换为csv。我计划将文件加载到Stata中进行分析。我有足够的内存来加载整个文件(我的计算机具有32GB的RAM)

问题是:到目前为止,我在网上使用Python(sqlite3)找到的解决方案似乎需要比当前系统更多的RAM:

  • 阅读SQL
  • 写csv

这是代码

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中)

任何帮助真的很感激!

致霍夫曼

您可以批量读取SQL数据库并将其写入文件,而不必一次读取整个数据库。归功于如何将熊猫数据添加到现有的csv文件中?有关如何添加到现有CSV文件的信息。

import sqlite3
import pandas as pd

# Open the file
f = open('output.csv', 'w')
# Create a connection and get a cursor
connection = sqlite3.connect('mydata.sql')
cursor = connection.cursor()
# Execute the query
cursor.execute('select * from mydata')
# Get data in batches
while True:
    # Read the data
    df = pd.DataFrame(cursor.fetchmany(1000))
    # We are done if there are no data
    if len(df) == 0:
        break
    # Let's write to the file
    else:
        df.to_csv(f, header=False)

# Clean up
f.close()
cursor.close()
connection.close()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将非常大的 csv 文件拆分为较小的文件

使用C ++解析非常大的CSV文件

使用Python将PostgreSQL查询导出到csv文件

使用 Pandas(Python) 从 Google Drive 读取非常大的 csv 文件

如何使用 Python 将 Web 服务的非常大的 JSON 响应转换为 CSV?

如何搜索非常大的csv文件?

如何使用Python将非常大的image(tif)文件转换为数组

Java:如何将非常大的数字(十亿左右的数字)输出到文件中?

使用Python解析非常大的文本文件?

使用 openpyxl python 处理非常大的文件

使用Python将列表导出到CSV

如何分割非常大的python文件?

将大型CSV文件导出到SQL Server并行

将数据从 Cloud SQL 导入/导出到 CSV 文件

将列表导出到R中的CSV或TXT文件中

使用SSIS,如何将SQL结果导出到多个CSV文件?

使用R将多个数据帧导出到.csv文件

使用Spark CSV软件包读取非常大的文件时出错

如何使用linux命令获取非常大的csv文件的第二列?

python 脚本将 200 多个非常大的 csv 合并为一个

将 BeautifulSoup/Python 循环导出到 CSV 或 txt 文件

重命名非常大的CSV数据文件的列

如何在nodejs中加载非常大的csv文件?

如何对非常大的CSV文件进行排序?

将数据从 Access 导出到 CSV 文件以在 MongoDB 中使用

使用SequelPro将表格导出到CSV文件中

如何使用jQuery将数据从表导出到CSV文件

使用PowerShell将Chrome书签导出到CSV文件

gate:使用groovy将gate导出到csv文件