web-dev-qa-db-fra.com

Comparaison entre modin | Dask | Données.table | Pandas pour le traitement parallèle et les fichiers CSV de mémoire de mémoire

Quelles sont les différences fondamentales et les cas d'utilisation principale pour Dask | MODIN | Datable.table

J'ai vérifié la documentation de chaque bibliothèque, tous semblent offrir une solution "similaire" à pandas limitations

12
Shubham Samant

J'ai une tâche de traiter avec les données de négociation quotidiennes d'actions et rencontré ce poste. La longueur de mes lignes est d'environ 60 millions et la longueur des colonnes est inférieure à 10. J'ai testé avec les 3 bibliothèques dans read_csv et groupby mean. Basé sur ce petit test, mon choix est dask. Ci-dessous une comparaison des 3:

| library      | `read_csv` time | `groupby` time |
|--------------|-----------------|----------------|
| modin        | 175s            | 150s           |
| dask         | 0s (lazy load)  | 27s            |
| dask persist | 26s             | 1s             |
| datatable    | 8s              | 6s             |

Il semble que modin n'est pas aussi efficace que dask pour le moment, au moins pour mes données. dask persist raconte dask _ que vos données pourraient s'intégrer à la mémoire afin de prendre un certain temps pour que Dask a tout mis au lieu de chargement paresseux. datatable _ a à l'origine toutes les données en mémoire et est super rapide en lecture_csv et en groupe. Cependant, compte tenu de son incompatibilité avec pandas Il semble mieux utiliser dask. En fait, je venais de r et que je connaissais très bien les données de R. Est-ce que je n'ai donc aucun problème à appliquer sa syntaxe en python. Si datatable in python peut être connecté de manière transparente à pandas (comme celui-ci a fait avec data.frame in r) alors ont été mon choix.

2
zxzb