Heim >Backend-Entwicklung >Golang >So verarbeiten Sie große Dateien effizient in Golang
In der folgenden Tutorial-Kolumne erfahren Sie, wie Sie große Dateien in Golang effizient verarbeiten können. Ich hoffe, dass es für Freunde, die es benötigen, hilfreich sein wird! Pandas verwenden, um große Dateien in Blöcken zu verarbeitenProblem: Heute bin ich bei der Verarbeitung von Kuaishou-Benutzerdaten auf einen TXT-Text von fast 600 MB gestoßen, als ich ihn mit sublime geöffnet habe, um ihn zu lesen. und es dauerte ungefähr genauso lange. Nach fast 2 Minuten öffnete ich es schließlich und fand fast 30 Millionen Datenzeilen. Es öffnet sich gerade, ich weiß nicht, wie schwer es wäre, damit umzugehen.
,
iteratorDas Prinzip besteht darin, dass die Dateidaten nicht auf einmal, sondern mehrfach in den Speicher eingelesen werden Zeiten. 1. Geben Sie chunksize an, um Dateien in Blöcken zu lesen.
read_csv und read_table verfügen über einen chunksize-Parameter, um eine Blockgröße anzugeben (wie viele Zeilen jedes Mal gelesen werden sollen) und ein iterierbares TextFileReader-Objekt zurückzugeben.
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)打印看一下信息
2. Geben Sie iterator=True an
iterator=True gibt auch ein TextFileReader-Objekt zurück
reader = pd.read_table('tmp.sv', sep='t', iterator=True) df=reader.get_chunk(10000) #通过get_chunk(size),返回一个size行的块 #接着同样可以对df处理
Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie große Dateien effizient in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!