データベースからcsvファイルに大量のデータ(> 1GB)を抽出する必要があります。私はこのスクリプトを使用しています:Pythonを使用して大きなcsvファイルを書き込むにはどうすればよいですか?
rs_cursor = rs_db.cursor()
rs_cursor.execute("""SELECT %(sql_fields)s
FROM table1""" % {"sql_fields": sql_fields})
sqlData = rs_cursor.fetchall()
rs_cursor.close()
c = csv.writer(open(filename, "wb"))
c.writerow(headers)
for row in sqlData:
c.writerow(row)
システムにメモリが不足しているファイルを書き込むときに問題が発生します。この場合、大規模なCSVファイルを作成するための他の効率的な方法はありますか?
問題はおそらく、sqlData' 'ではなく、このデータをファイルに書き込むという事実です。このデータはどこから来たのですか?あなたはそれを支配していますか?そうしたら、それを塊で、またはジェネレーターとして読むことに目を向けるべきです。 – DeepSpace
どのようにSQLデータを取得していますか?そのコードを私たちに見せてもらえますか? – drsnark
私はsqlDataのコードのビットを追加しました。データは大規模なテーブルから来ています。 – ebertbm