Python如何处理大数据?3个技巧效率提升攻略(推荐)
如果你有个5、6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低。于是,有人用python处理大文件还是会存在效率上的问题。因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~
所以,为什么用python处理大文件总有效率问题?
如果工作需要,立刻处理一个大文件,你需要注意两点:
01、大型文件的读取效率
面对100w行的大型数据,经过测试各种文件读取方式,得出结论:
with open(filename,"rb") as f: for fLine in f: pass
方式最快,100w行全遍历2.7秒。
基本满足中大型文件处理效率需求。如果rb改为r,慢6倍。但是此方式处理文件,fLine为bytes类型。但是python自行断行,仍旧能很好的以行为单位处理读取内容。
02、文本处理效率问题
这里举例ascii定长文件,因为这个也并不是分隔符文件,所以打算采用列表操作实现数据分割。但是问题是处理20w条数据,时间急剧上升到12s。本以为是byte.decode增加了时间。遂去除decode全程bytes处理。但是发现效率还是很差。
最后用最简单方式测试,首次运行,最简单方式也要7.5秒100w次。
想知道这个方式处理的完整代码是什么吗?扫描文末二维码,联系小编可以获取哦~
那么关于python处理大文件的技巧,从网络整理三点:列表、文件属性、字典三个点来看看。
1.列表处理
def fun(x):尽量选择集合、字典数据类型,千万不要选择列表,列表的查询速度会超级慢,同样的,在已经使用集合或字典的情况下,不要再转化成列表进行操作,比如:
values_count = 0 # 不要用这种的 if values in dict.values(): values_count += 1 # 尽量用这种的 if keys,values in dict: values_count += 1
后者的速度会比前者快好多好多。
2. 对于文件属性
如果遇到某个文件,其中有属性相同的,但又不能进行去重操作,没有办法使用集合或字典时,可以增加属性,比如将原数据重新映射出一列计数属性,让每一条属性具有唯一性,从而可以用字典或集合处理:
return '(' + str(x) + ', 1)' list(map(fun,[1,2,3]))
使用map函数将多个相同属性增加不同项。
3. 对于字典
多使用iteritems()少使用items(),iteritems()返回迭代器:
>>> d = {'a':1,'b':2} >>> for i in d.items() : .... print i ('a',1) ('b',2) >>> for k,v in d.iteritems() : ... print k,v ('a',1) ('b',2)
字典的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator,items当使用时会调用整个列表 iteritems当使用时只会调用值。
除了以下5个python使用模块,你还有什么技巧解决大文件运行效率的问题吗?深入了解更多Python实用模块,快速提升工作效率~
读写文件技术,今后会用到测试数据的参数化和测试报告写作功能中~
数据处理技术,今后测试脚本的测试数据处理过程可以用到~
数据统计分析技术,今后会在测试结果分析中用到
图表展示技术,在今后的测试框架中相关测试报告会用到
程序自动触发技术,可用于测试脚本程序的自动执行。
以上所述是小编给大家介绍的Python如何处理大数据?3个技巧效率提升攻略详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
- MaxCompute分布式计算如何提升基因大数据处理速率?
- 用Python如何处理excel里面的数据
- python高效编程技巧1 (如何在列表,字典,集合中根据条件筛选数据)
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
- 推荐给“懒惰” Linux 运维工程师的 10 个关键技巧,瞬间提升运维效率!
- 如何处理数据库中海量数据,以及处理数据库海量数据的经验和技巧(转)
- O'Reilly精品图书推荐:数据算法:Hadoop/Spark大数据处理技巧
- 如何使用python处理JSON数据
- 如何处理数据库中海量数据,以及处理数据库海量数据的经验和技巧
- MaxCompute分布式计算如何提升基因大数据处理速率?
- MaxCompute分布式计算如何提升基因大数据处理速率?
- 测试数据准备难不难?你知道如何提升测试数据准备效率吗?
- 如何处理集合里的数据 Python
- 教你如何处理逆光压光技巧 完美人像实拍攻略详情介绍
- java 如何处理大数据---技巧
- Eclipse使用技巧 - 自定义JavaDoc注解和代码模版,提升开发效率和规范性 推荐
- 前端奇淫技巧(一)之前端遇到需要数据遍历的如何处理
- Python3,通过re模块中的sub()和findall()2个方法提升爬虫提取数据的效率
- 【excel处理技巧】如何在Excel中快速辨别两列数据是否一致的五种方法介绍
- python数据分析及处理案例技巧11-20(基于jupyter)