Vergleichen Sie die Lese- / Schreibgeschwindigkeit und Kapazität von CSV, Pickle, Joblib und Parkett in einer Python-Umgebung

Was ich getan habe

Wird häufig verwendet, wenn 2D-Array-Daten vorübergehend in Python gespeichert werden

  1. pickle.dump
  2. joblib.dump
  3. In Pyarrow umwandeln und Parkett aufbewahren
  4. pd.write_csv Wir haben die Lese- / Schreibgeschwindigkeit und die Speicherkapazität für jeden von ihnen verglichen.

Fazit

Sieht gut aus

Testumgebung

CPU: Xeon E5-2630 x 2 chip VRAM: 128GB Windows8 64bit python 3.6

Zum Vergleich verwendete Daten

Versucht mit Feature-Daten für maschinelles Lernen · Pandas.DataFrame 536 Zeilen 178886 Spalten 0,77 GB ・ Pandas.DataFrame 4803 Zeilen 178886 Spalten 6,87 GB

Vergleichsergebnis

0,77 GB DataFrame

image.png image.png

6,87 GB DataFrame

image.png image.png

Über das Ergebnis

pickle Betrachtet man nur das Komprimierungsverhältnis und die Geschwindigkeit, so ist das Protokoll = 3 oder höher von pickle ausgezeichnet, und insbesondere das Protokoll = 4 ist äußerst praktisch, da es auch das Schreiben von 4 GB oder mehr unterstützt. In der Ubuntu-Umgebung Python3.6 oder früher gibt es jedoch ein Problem mit Protokoll = 4 oder es funktioniert nicht wie beim Lesen und Schreiben. Da es normalerweise mit Python3.7 oder höher funktioniert, scheint Pickle gut zu sein, wenn die Umgebung gesichert werden kann oder die Kapazität gering ist.

joblib Im Vergleich zu pickle sind die Komprimierungsrate und die Lese- / Schreibgeschwindigkeit etwas halbiert, aber da es möglich ist, 4 GB oder mehr sogar in der Python3.6-Umgebung zu lesen / schreiben, kann dies für diejenigen gut sein, die aus Paketgründen kein neues Python erstellen können.

pyarrow => parquet Es ist attraktiv, dass Sie bestimmte Zeilen und Spalten lesen und schreiben können, während Sie die gleiche Komprimierungsrate und Lese- / Schreibgeschwindigkeit wie joblib compress = 0 haben. Zumal das Schreiben schnell ist, scheint dies gut zu sein, wenn Lesen und Schreiben zufällig eingegeben werden.

Umweltbelastung

Der Einfluss der Umgebung scheint sehr groß zu sein, und als ich auf einem anderen Computer mit einem anderen Betriebssystem experimentierte, war der Unterschied nur 20 Mal, aber nur 4 Mal. Es scheint besser zu sein, in der Umgebung zu testen, in der Sie es tatsächlich verwenden.

Recommended Posts

Vergleichen Sie die Lese- / Schreibgeschwindigkeit und Kapazität von CSV, Pickle, Joblib und Parkett in einer Python-Umgebung
Lesen und schreiben Sie JSON-Dateien mit Python
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Python netCDF4 Lesegeschwindigkeit und Verschachtelung von for-Anweisungen
Lesen und Schreiben von Gleitkommazahlen mit einfacher Genauigkeit in Python
Lesen und schreiben Sie NFC-Tags mit Python mit PaSoRi
Lesen und Schreiben durch Komprimieren von Variablen wie DataFrame mit joblib anstelle von pickle
CSV-Datei lesen und schreiben
Umgebungskonstruktion von Python und OpenCV
Erstellen und lesen Sie Messagepacks in Python
Schreiben Sie die O_SYNC-Datei in C und Python
Lesen und Schreiben von CSV-Dateien mit Numpy
Lesen Sie Python csv und exportieren Sie es nach txt
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Ich habe die Geschwindigkeit regulärer Ausdrücke in Ruby, Python und Perl (Version 2013) verglichen.
Lesen Sie JSON mit Python und geben Sie CSV aus
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Lesen und Schreiben von CSV- und JSON-Dateien mit Python
Python-Entwicklungsumgebung - Verwendung von Pyenv und Virtualenv-
[Python3] Lesen und Schreiben mit datetime isoformat mit json
Erläuterung der Bearbeitungsentfernung und Implementierung in Python
Beispiel für das Lesen und Schreiben von CSV mit Python
Vergleich von Python und Ruby (Environment / Grammar / Literal Edition)
[Python] Japanische CSV mit Pandas ohne verstümmelte Zeichen lesen (weitere auf Japanisch geschriebene Spalten extrahieren)
Ich habe die Geschwindigkeit der Referenz des Pythons in der Liste und die Referenz der Wörterbucheinbeziehung aus der In-Liste verglichen.
Lesen Sie die CSV-Datei mit dem Jupiter-Notizbuch und schreiben Sie die Grafik übereinander
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
CSV in Python
"Lineare Regression" und "Probabilistische Version der linearen Regression" in Python "Bayes lineare Regression"
Betreiben Sie mongoDB von Python in einer Ubuntu-Umgebung. ① Einführung von mongoDB
Experiment zum Vergleich der Schreibgeschwindigkeit von Dateien zwischen Python 2.7.9 und Pypy 2.5.0
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
[Python] Berechnung der Differenz von Datum und Zeit in Monaten und Jahren
Schreiben Sie Tests in Python, um die Abdeckung zu profilieren und zu überprüfen
Lesen und Schreiben von Dateien mit Slackbot ~ Bot-Entwicklung mit Python ~
Lesen von CSVs, die in Python nur Ganzzahlen enthalten
Vergleiche "log and infininity" mit Gauche (0.9.4) und Python (3.5.1)
Beispiel für das Abrufen des Modulnamens und des Klassennamens in Python
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
[Python] Kapitel 01-02 Über Python (Ausführung und Installation der Entwicklungsumgebung)
Die parallele Verarbeitung der Python-Joblib funktioniert in der uWSGI-Umgebung nicht. Wie verarbeite ich parallel auf uWSGI?