gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:42:41 26 4
gpt4 key购买 nike

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

问题是:到目前为止,我使用 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 数据库并将它们写入文件,而不是一次读取整个数据库。感谢How to add pandas data to an existing csv file?了解如何添加到现有 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()

关于python - 使用 Python 或 R 将非常大的 sql 文件导出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com