最近有一些朋友遇到了困扰,想要读取7G多的文本文件,但是电脑只有8G内存,于是问我如何才能读取这样庞大的文件。
根据我曾经的亲身经历,我工作机只有24G内存,要读取15.6G的单个文本文件,虽然理论上足够,但是如果不需全文使用的话,岂不是十分浪费?此时我研究一番之后发现了这样一个工具,下面来聊一聊。
本教程适合需要读取大文本文件的一部分或者遍历大文本文件的场景,其他类型的文件我没试过,不能确定能否使用。
首先,需要安装pyspark,这个工具底层是使用Java写的,而且根据我的测试,不支持较新版本的Java环境,需要8.0版本,我不是Java程序员,没法跟你介绍具体安装流程,自行百度。
此时,编写一个脚本(或者在交互环境中运行),输入代码:
1: 导入工具包
2: 这里我需要在文本中查找文字,所以使用正则,具体做什么,用户自行编写逻辑
3: 读取文件的上下文环境,此处这样写运行时会有警告出现,但是为了方便,忽略就行,毕竟自己用的代码不用太纠结这些。
4: 读文件,此处的路径必须这样的格式:'file://'
5: 用文件对象产生生成器,节约内存
6: 生成器对象可直接遍历
几行代码搞定,是不是十分方便?