永州网,内容丰富有趣,生活中的好帮手!
永州网 > 随笔 > 正文

如何在单机上处理10G大小的文件需要使用4G+内存?

时间:2020-04-17 07:33:13

相关推荐

如何在单机上处理10G大小的文件需要使用4G+内存?

要实现在单机上处理大小为10G的文件,需要结合4G以上的内存和高效的处理算法。首先,确保计算机具备4G以上的内存,以便在内存中进行数据处理,减少磁盘读写次数。其次,利用内存映射等技术,将文件映射到内存中进行读取和处理,减少磁盘IO开销。另外,选择适合大文件处理的算法和数据结构,如分块读取、多线程并行处理等,以提高处理效率。最后,合理利用缓存和临时文件,避免数据频繁读写磁盘。通过这些方法,可以在单机上高效地处理10G大小的文件。

下面的讨论基于的假定:可以单独处理一行数据,行间数据相关性为零。

方法一:

仅使用 Python 内置模板,逐行读取到内存。

使用 yield,好处是解耦读取操作和处理操作:

def python_read(filename): with open(filename,"r",encoding="utf-8") as f: while True: line = f.readline() if not line:return yield line

以上每次读取一行,逐行迭代,逐行处理数据

if __name__ == "__main__": g = python_read("./data/movies.dat") for c in g: print(c) # process c

方法二:

方法一有缺点,逐行读入,频繁的 IO 操作拖累处理效率。是否有一次 IO ,读取多行的方法?

pandasread_csv函数,参数有 38 个之多,功能非常强大。

关于单机处理大文件,read_csvchunksize参数能做到,它被设置为5, 意味着一次读取 5 行。

def pandas_read(filename,sep=",",chunksize=5): reader = pd.read_csv(filename,sep,chunksize=chunksize) while True: try: yield reader.get_chunk() except StopIteration: print("---Done---") break

使用如同方法一:

if __name__ == "__main__": g = pandas_read("./data/movies.dat",sep="::") for c in g: print(c) # process c

以上就是单机处理大文件的两个方法,推荐使用方法二,更加灵活。除了工作中会用到,面试中也有时被问到。

近期文章

Python核心技术与实战

Python全栈-60天精通之路

Python网络爬虫与文本数据分析

Python数据分析相关学习资源汇总帖

漂亮~pandas可以无缝衔接Bokeh

综述:文本分析在市场营销研究中的应用

Lazy Prices公司年报内容变动碰上股价偷懒

用python帮你生产指定内容的word文档

B站跨年晚会弹幕内容分析

YelpDaset: 酒店管理类数据集10+G

NRC词语情绪词典和词语色彩词典

Loughran&McDonald金融文本情感分析库

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(3)
  1. ˊ与我2022-09-01 11:01ˊ与我[宁夏网友]203.118.241.82
    我觉得可能需要用到一些压缩和解压缩的算法来减小内存占用。希望对你有所帮助。
    顶10踩0
  2. 茶影氤氲2021-11-16 09:51茶影氤氲[浙江省网友]121.71.53.180
    或许可以考虑使用一些流式处理的方式,避免一次性加载整个文件到内存里。
    顶5踩0
  3. §永。恒€2021-01-31 08:42§永。恒€[江苏省网友]203.33.32.22
    这个问题挺有挑战的,可能需要用到一些分块读取和处理的技巧。
    顶6踩0
相关阅读
JAVA 经典面试题:ES如何做到亿级数据查询毫秒级返回?

JAVA 经典面试题:ES如何做到亿级数据查询毫秒级返回?

我们将探讨ES的索引优化、分片设置、查询优化等方面的技术,以及JAVA代码中如何与ES进行高效交互

2024-03-15

电脑经常卡死机是怎么回事

电脑经常卡死机是怎么回事

首先,硬件故障可能导致电脑卡死,如内存问题、硬盘故障或散热不良

2024-03-16

解决电脑经常卡死机的方法

解决电脑经常卡死机的方法

造成电脑卡死机的原因可能包括软件冲突、硬件故障、病毒感染、系统过载等

2024-03-18

笔记本电脑游戏死机解决方法指南

笔记本电脑游戏死机解决方法指南

死机可能是由于硬件问题、驱动程序冲突、过热或系统资源不足等各种原因引起的

2024-03-19

如何解决频繁死机的惠普电脑问题

如何解决频繁死机的惠普电脑问题

处理这个问题的方法可以包括升级操作系统、更新驱动程序、清理内部风扇和散热器、扫描病毒和恶意软件等

2024-03-26