2016-04-08 5 views
0

Ich möchte auf eine große Datei von Daten (7 GB) lernen: 800 Zeilen, 5 Millionen Spalten. Also möchte ich diese Daten laden und sie in eine Form bringen, die ich benutzen kann (2D Liste oder Array).Laden Sie große Daten ohne Iteratoren oder Chunks

Das Problem ist hier, wenn ich die Daten laden und versuchen, sie zu speichern, verwenden sie alle meine Speicher (12 GB) und 500 in Reihe zu stoppen nur

ich viel über gehört, wie diese Art von verwenden, Daten, wie die Verwendung von Chunks und Iteratoren, aber ich möchte sie vollständig in den Speicher laden, damit ich eine Kreuzvalidierung durchführen kann. Ich habe versucht, Pandas zu benutzen, um mir zu helfen, aber das Problem ist das gleiche.

Gibt es einige Probleme beim Laden und Speichern der gesamten 7 GB Daten, wie ich will? Oder irgendeine andere Idee, die mir helfen könnte?

+0

Haben Sie 12 GB RAM übrig, nachdem Sie alle anderen Ressourcen subtrahiert haben? – timgeb

+6

Wie auch immer, wenn Sie wirklich alles in den Speicher laden wollen, aber nicht genug Speicher haben, ist die Antwort, mehr Speicher zu kaufen. Oder komprimiere die Daten irgendwie. – timgeb

+0

hängt davon ab, was Sie tun möchten. Auf dem Weg ist Split-Daten zu Teilen dann laden Sie jeweils einen Teil. – galaxyan

Antwort

0

Sie können versuchen, eine Auslagerungsdatei oder Auslagerungsdatei zu erhalten. Abhängig von Ihrem Betriebssystem können Sie virtuellen Speicher verwenden, damit Ihr System mehr Objekte in einem einzigen Prozess ansprechen kann, als in den physischen Speicher passen. Abhängig davon, wie groß die working set ist, kann die Leistung nicht so sehr leiden, oder es kann völlig schrecklich sein. Das heißt, es ist fast sicher, dass mehr Speicher oder eine Partitionierungsstrategie (ähnlich wie Sie Chunking nennen) eine bessere Lösung für Ihr Problem ist.

Unter Windows werfen Sie einen Blick auf here, um Informationen zum Anpassen der Seitengröße zu erhalten. Für Redhat Linux versuchen Sie this link für Informationen zum Hinzufügen von Swap.