如何从SQL表中下载大数据,并通过在上获取大约1000条记录连续保存到csv

2024-10-03 15:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由1000万行和许多列组成的SQL表,当查询时表的大小大约是44gb。在

不过,我试图从这个表中只提取3列,并将其保存到python永远运行的csv/load dataframe中。 i、 e

 pd.read_sql("select a,b,c from table") is taking more than 1 hour and not returning data
^{pr2}$

如果是2。如何为2编码?在

到目前为止,2的代码是:

   def iter_row(cursor, size=10):
while True:
    rows = cursor.fetchmany(size)
    if not rows:
        break
    for row in rows:
        yield row

  def query_with_fetchmany():

    cursor.execute("SELECT * FROM books")

    for row in iter_row(cursor, 10):
        print(row)
    cursor.close()

Tags: csvindataframeforsqlsizedefnot
1条回答
网友
1楼 · 发布于 2024-10-03 15:32:05

可以分块读取数据:

for c in pd.read_sql("select a,b,c from table", con=connection, chunksize=10**5):
    c.to_csv(r'/path/to/file.csv', index=False, mode='a')

相关问题 更多 >