Maison > Article > développement back-end > Comment traiter efficacement des fichiers volumineux dans Golang
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 !
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.
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)
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!