2017-06-01 1 views
4

J'ai besoin de trouver des doublons dans un grand ensemble de données, donc je suis en train de tester la bibliothèque python dedupe. Je sais qu'il est recommandé pour les petits jeux de données, donc je pensais que l'utilisation d'une bonne machine pouvait améliorer les performances. J'ai une machine avec 56 Go de RAM et je cours un test similaire à "csv_example" pour un jeu de données avec 200000 lignes. Cela fonctionne mais l'utilisation de la mémoire est très faible et donc le traitement (CPU).Utilisation des ressources faible lors de l'utilisation de dedupe python

Il semble prendre trop de temps dans la phase de blocage:

INFO:dedupe.blocking:10000, 110.6458142 seconds 
INFO:dedupe.blocking:20000, 300.6112282 seconds 
INFO:dedupe.blocking:30000, 557.1010122 seconds 
INFO:dedupe.blocking:40000, 915.3087222 seconds 

Quelqu'un pourrait-il me aider à améliorer l'utilisation ou me dire s'il y a une bibliothèque/paramètre qui rend l'utilisation du programme plus de ressources disponibles?

Répondre

2

Quelle version de dedupe utilisez-vous? A partir de 1.6.8, il devrait gérer un ensemble d'enregistrements de cette taille assez facilement.

Toutefois, la règle générale est que lorsque vous rencontrez des problèmes de mémoire, passez à bloquer avec une base de données comme dans l'exemple postgres.

(Je suis un auteur principal de dedupe).

+0

Merci! dedupe est une super bibliothèque. est-il possible d'utiliser cette bibliothèque dans spark pour dédupliquer 3000000 enregistrements? :) – mjimcua

+1

Je ne sais rien à propos de l'étincelle, mais la déduplication devrait être capable de gérer facilement 3 millions d'enregistrements. – fgregg