Fréquemment utilisé lors de l'enregistrement temporaire de données de tableau 2D en python
--Pickle protocol = 4 pour le taux de compression et la vitesse ――Si vous répétez la lecture ou l'écriture d'une partie seulement, enregistrez le parquet avec pyarrow
Cela semble bon
CPU: Xeon E5-2630 x 2 chip VRAM: 128GB Windows8 64bit python 3.6
Essayé avec des données de fonctionnalités pour l'apprentissage automatique · Pandas.DataFrame 536 lignes 178886 colonnes 0,77 Go ・ Pandas.DataFrame 4803 lignes 178886 colonnes 6,87 Go
pickle En ne regardant que le taux de compression et la vitesse, le protocole de pickle = 3 ou plus est excellent, et surtout protocole = 4 est extrêmement pratique car il prend également en charge l'écriture de 4 Go ou plus. Cependant, dans l'environnement ubuntu python3.6 ou antérieur, il y a un problème avec protocol = 4 ou il ne fonctionne pas comme il est pour la lecture et l'écriture. Comme il fonctionne normalement avec python3.7 ou version ultérieure, pickle semble être bon si l'environnement peut être sécurisé ou si la capacité est petite.
joblib Par rapport à pickle, le taux de compression et la vitesse de lecture / écriture sont un peu à mi-chemin, mais comme il est possible de lire / écrire 4 Go ou plus même dans l'environnement python3.6, cela peut être bon pour ceux qui ne peuvent pas créer de nouveau python pour des raisons de package.
pyarrow => parquet Il est intéressant de pouvoir lire et écrire des lignes et des colonnes spécifiées tout en ayant le même taux de compression et la même vitesse de lecture / écriture que joblib compress = 0. D'autant plus que l'écriture est rapide, cela semble être bon lorsque la lecture et l'écriture sont saisies au hasard.
L'influence de l'environnement semble être très grande, et quand j'ai expérimenté sur une autre machine avec un OS différent, la différence n'était que de 20 fois, mais seulement de 4 fois. Il semble préférable de tester dans l'environnement où vous l'utilisez réellement.
Recommended Posts