Wie verwandeln Sie eine riesige CSV in SQLite mit Pandas?

Ich habe eine große Tabelle (über 60 GB) in form einer CSV-Datei archiviert. Ich möchte, um es zu transformieren in eine SQLite-Datei.

Was ich im moment tun im folgenden:

import pandas
import sqlite3
cnx = sqlite3.connect('db.sqlite')
df = pandas.read_csv('db.gz', compression='gzip')
df.to_sql('table_name', cnx)

Es funktioniert gut für kleinere Dateien, aber auch mit den großen Dateien habe ich Probleme mit dem Speicher. Das problem ist, dass pandas liest die gesamte Tabelle in den Speicher (RAM) und speichert Sie dann in die SQLite-Datei.

Gibt es eine elegante Lösung für dieses problem?

  • read_csv dauert chunksize param, dies gibt ein Stück, dass die Anzahl der Zeilen, so kann man iterativ Lesen N Zeilen und schreiben Sie sql siehe die Dokumentation: pandas.pydata.org/pandas-docs/stable/generated/...
  • Sie haben die Verwendung von python und pandas? Warum nicht .import in die SQLite - Befehlszeile?
InformationsquelleAutor Roman | 2016-01-08
Schreibe einen Kommentar