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

Comment traiter efficacement des fichiers volumineux dans Golang

藏色散人
Libérer: 2021-05-12 11:52:57
avant
2355 Les gens l'ont consulté

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)打印看一下信息
Copier après la connexion

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处理
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal