Hallo, ich habe versucht, mehrere Serien für einen Datensatz (3,5 Millionen Zeilen und 225 Spalten) zu stapeln. Es kommt zu einem RAM-Überlauf (nicht genügend Arbeitsspeicher). Ich verwende 32 GB RAM. Gibt es eine Möglichkeit, dies seriell durchzuführen, um das Speicherproblem zu vermeiden und die erwartete Datentabelle zu erhalten?
Eine einzelne Datentabelle mit 3,5 Millionen Zeilen und 225 Spalten = 787,5 Millionen Zeilen kostet mich mehr als 12 GB. Die reguläre gestapelte Tabelle hat 3,5 MX 225 = 787,5 Millionen Zeilen und zwei Spalten (die zweite ist das Etikett), die leicht im Bereich um 20 GB liegen werden, sodass sie nicht auf 32 GB RAM koexistieren.
Ich schlage folgende Reihenfolge vor:
- Nehmen Sie die ursprünglichen Daten aus 3,5 Millionen Zeilen und 225 Spalten und speichern Sie einzelne Spalten einzeln in separaten Dateien. Und schließen Sie die neue Datei jedes Mal, nachdem Sie sie gespeichert haben. Jede gespeicherte Datei hat zwei Spalten, eine ist die Serie, die andere ist der Indikator oder das Etikett. Verwenden Sie numerischen Typ für die Beschriftung. Verwenden Sie in Ihrem Fall einfach 1 bis 225. (Optional, versuchen Sie, die Beschriftungsspalte zu komprimieren. Und die Komprimierungsspalte verwendet ein 2-Byte-Feld.)
- Schließen Sie die große Originaldatei.
- Öffnen Sie die erste gespeicherte Datei mit einer Spalte. Verketten Sie dann nacheinander andere einzelne Dateien, wobei "An erste Tabelle anhängen" aktiviert ist. Und schließen Sie alle einzelnen Dateien sofort, nachdem sie angehängt wurden.
Ich habe versucht, eine kleine Tabelle mit 3,5 Millionen Zeilen und 2 Spalten an die große Tabelle mit 787,5 Millionen Zeilen und 2 Spalten anzuhängen. Der maximale Speicherverbrauch von JMP sprang manchmal auf über 20 GB, überlebte aber und reduzierte sich auf ~ 18 + GB, nachdem die Verkettung abgeschlossen war. Und ich habe noch ein paar Runden angehängt, ich habe ein ähnliches Verhalten beobachtet. Und ich sehe eine erheblichere Speicherersparnis, wenn ich komprimierte Spalten verwende. Scheint jedenfalls einen Versuch wert zu sein. Viel Glück!
Übrigens, wie wollen Sie die Daten analysieren? Welche Plattform möchten Sie nutzen?