【发布时间】:2021-01-06 03:18:03
【问题描述】:
假设我正在打开一个大型(数 GB)文件,我无法一次读取整个文件。
如果是 csv 文件,我们会使用:
for chunk in pd.read_csv('path/filename', chunksize=10**7):
# save chunk to disk
或者我们可以对 pandas 做类似的事情:
import pandas as pd
with open(fn) as file:
for line in file:
# save line to disk, e.g. df=pd.concat([df, line_data]), then save the df
如何使用 awk 脚本“分块”数据? awk 会将文本解析/处理为您想要的格式,但我不知道如何使用 awk 进行“分块”。可以编写一个脚本script1.awk 然后处理您的数据,但这会同时处理整个文件。
相关问题,有更具体的例子:How to preprocess and load a "big data" tsv file into a python dataframe?
【问题讨论】:
-
您是在问
awk是否可以根据条件将一个大文件拆分为多个文件?如果是这样,是的是可能的。如果您提供更多信息(例如输入文件以及您希望如何处理它)会更有帮助 -
默认情况下不会逐行读取(可以使用 RS 更改以指定不同的记录分隔符) - 因此文件大小没有实际意义?
-
问题是什么? awk 还是 python/熊猫?如果您已经在使用 python,我看不出使用 awk 的意义。
-
@Inian 我明白,但我不想在这里重复这个有据可查的问题:stackoverflow.com/questions/39398986/…
-
@Sundeep 那么如何将每一行逐行保存到(比如说)熊猫数据框中?