2016-04-27 3 views
1

Ich muss ein großes Array in Python aus Sqlite-Datenbank erstellen. Es ist die Größe 1000_000_000 * 1000_000_000 und jedes Element ist eins oder null. Tatsächlich kann mein Computer diese Informationsmenge nicht im RAM speichern. Vielleicht hat jemand eine Idee, wie man in dieser Situation arbeitet? Vielleicht speichern Sie diese Vektoren in der Datenbank oder gibt es einen Rahmen für ähnliche Bedürfnisse? Wenn ich in der Lage bin, dies zu tun, dann muss ich Cluster erstellen, dieses Problem erschreckt mich nicht weniger, mit dieser Informationsgröße. Danke im Voraus/Wie arbeiten Sie mit großen Array in Python?

+0

Im Grunde müssen Sie Ihren Ansatz ändern - mit einem so großen Datenrahmen sollten Sie lieber ein anderes Schema verwenden, anstatt "alles in den Speicher zu laden". Welches Schema insbesondere hängt stark davon ab, was Sie erreichen wollen. Bemerkenswerte Beispiele: Stapelverarbeitung (Teilmenge laden, Prozess, Entladen, nächste laden), Suchbäume (für die Suche, offensichtlich), usw. – J0HN

+0

Sie können sich [Apache Spark SQL] (http://spark.apache.org) anschauen/sql /) – MaxU

+0

Wahrscheinlich können Sie das Array in einer Datei speichern. 'jedes Element ist eins oder null '- so wissen Sie genau, welches Element in welcher Position der Datei. –

Antwort

0

Ich arbeite auch mit wirklich großen Datensätzen (komplette Genome oder alle möglichen Genkombinationen) und ich speichere diese in einer gezippten Datenbank mit Gurke. Auf diese Weise ist es Ram-effizient und benötigt viel weniger Festplattenspeicher. Ich schlage vor, Sie versuchen das.