专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
京东零售技术  ·  我在618主场,和3位顶尖技术博士聊了聊 ·  昨天  
OSC开源社区  ·  走进群核科技丨AI 数据全链路闭环加速沙龙 ·  2 天前  
码农翻身  ·  60K*15薪!进字节了! ·  昨天  
阿里云云栖号  ·  2025阿里云中企出海峰会·深圳,6月24日见! ·  2 天前  
码农翻身  ·  3个中国程序员 vs ... ·  2 天前  
51好读  ›  专栏  ›  程序猿

Python 适合大数据量的处理吗?

程序猿  · 公众号  · 程序员  · 2016-11-18 17:45

正文

请到「今天看啥」查看全文


我很喜欢用python,用python处理数据是家常便饭,从事的工作涉及nlp,算法,推荐,数据挖掘,数据清洗,数据量级从几十k到几T不等,我来说说吧


百万级别数据是小数据,python处理起来不成问题,python处理数据还是有些问题的


Python处理大数据的劣势:


1、python线程有gil,通俗说就是多线程的时候只能在一个核上跑,浪费了多核服务器。在一种常见的场景下是要命的:并发单元之间有巨大的数据共享或者共用(例如大dict),多进程会导致内存吃紧,多线程则解决不了数据共享的问题,单独的写一个进程之间负责维护读写这个数据不仅效率不高而且麻烦

2、python执行效率不高,在处理大数据的时候,效率不高,这是真的,pypy(一个jit的python解释器,可以理解成脚本语言加速执行的东西)能够提高很大的速度,但是pypy不支持很多python经典的包,例如numpy(顺便给pypy做做广告,土豪可以捐赠一下PyPy - Call for donations)

3、绝大部分的大公司,用java处理大数据不管是环境也好,积累也好,都会好很多


Python处理数据的优势(不是处理大数据):

1、异常快捷的开发速度,代码量巨少

2、丰富的数据处理包,不管正则也好,html解析啦,xml解析啦,用起来非常方便

3、内部类型使用成本巨低,不需要额外怎么操作(java,c++用个map都很费劲)

4、公司中,很大量的数据处理工作工作是不需要面对非常大的数据的

5、巨大的数据不是语言所能解决的,需要处理数据的框架(hadoop, mpi。。。。)虽然小众,但是python还是有处理大数据的框架的,或者一些框架也支持python

6、编码问题处理起来太太太方便了


综上所述:

1、python可以处理大数据

2、python处理大数据不一定是最优的选择

3. python和其他语言(公司主推的方式)并行使用是非常不错的选择

4. 因为开发速度,你如果经常处理数据,而且喜欢linux终端,而且经常处理不大的数据(100m一下),最好还是学一下python







请到「今天看啥」查看全文