我正在尝试使用一个非常大的45gb .txt文件,该文件无法使用常规文本编辑器打开。
每行中的数据都用空格隔开,尽管每个参数中也有空格。例如,第一行看起来像这样:
剑桥大学CB2 1TQ 0001234567 2011-01-25 12345 11.12345 12.12345 13.12345 14.1234 16.2716)
我实际上想要清除的内容,过滤一些数据,汇总一些单元格/参数,向每行添加一些其他数据并执行聚类分析(可能是使用python或C#,因为我开始捡起来。)
答案 0 :(得分:0)
将其存储在数据库中听起来像是一个不错的开始,而不是尝试通过文本文件处理所有数据。如果您知道可以现在 过滤数据,那么这也可能使生活更轻松。
with open("file.txt", "r") as file:
for line in file:
# Filter
# If filter passes, add to batch
# At a batch size n, insert to db and restart batch
现在,您的数据在数据库中,您可以以更高性能的方式对其执行任意SQL查询,获取总计之类的汇总统计信息,并附加值。您可以从中提取样本进行ML操作,也可以使用进行查询的fit generator
方法。我已经在Python scikit-learn中使用了集群实现,并且喜欢与它们一起工作,但是我不记得有任何内存不足的实现。 (因为我没有使用过C#库,所以我无法与其交谈。)
Python在stdlib中具有DB API,例如https://docs.python.org/3/library/sqlite3.html
Python的ORM带有https://www.sqlalchemy.org/
Python还具有公共云数据库SDK,例如
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html
和
https://cloud.google.com/python/getting-started/using-cloud-sql