Maison  >  Article  >  développement back-end  >  Comment traiter efficacement des fichiers volumineux dans Golang

Comment traiter efficacement des fichiers volumineux dans Golang

藏色散人
藏色散人avant
2021-05-12 11:52:442288parcourir

La colonne de didacticiel suivante de golang vous présentera comment traiter efficacement des fichiers volumineux dans golang_Utilisez Pandas pour traiter des fichiers volumineux en morceaux, j'espère que cela vous sera utile. aux amis dans le besoin !

Utilisez Pandas pour traiter des fichiers volumineux en morceaux

Problème : Aujourd'hui, lors du traitement des données utilisateur de Kuaishou, j'ai rencontré un texte txt de près de 600 Mo. Il s'est écrasé lorsque je l'ai ouvert avec sublime. pandas. La lecture a pris près de 2 minutes avec read_table(). Finalement, lorsque je l'ai ouvert, j'ai trouvé près de 30 millions de lignes de données. C'est juste l'ouverture, je ne sais pas à quel point ce serait difficile à gérer.

Solution : J'ai parcouru la documentation. Ce type de fonction qui lit des fichiers a deux paramètres : chunksize, iterator

Le principe est Le les données du fichier ne sont pas lues dans la mémoire en une seule fois, mais plusieurs fois.

1. Spécifiez chunksize pour lire le fichier en morceaux

read_csv et read_table ont un paramètre chunksize pour spécifier une taille de morceau (combien de lignes lire à chaque fois) et renvoyer un objet TextFileReader itérable.

table=pd.read_table(path+'kuaishou.txt',sep='t',chunksize=1000000)
for df in table:
    对df处理
    #如df.drop(columns=['page','video_id'],axis=1,inplace=True)
    #print(type(df),df.shape)打印看一下信息

J'ai à nouveau divisé le fichier ici et je l'ai divisé en plusieurs sous-fichiers pour un traitement séparé (oui, to_csv a également le paramètre chunksize)

Spécifiez iterator=True

.

iterator=True renvoie également un objet TextFileReader

reader = pd.read_table('tmp.sv', sep='t', iterator=True)
df=reader.get_chunk(10000)
#通过get_chunk(size),返回一个size行的块
#接着同样可以对df处理

Jetons un coup d'œil au contenu du document pandas sous cet aspect.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer