028-86261949

当前位置:首页 > 学科资讯 > Python适合处理大数据么?

Python适合处理大数据么?

2018/07/25 16:13 分类: 学科资讯 浏览:29

      大数据,在2017年是一个热点,今年虽然在面上大数据不及去年,但依然是我们去关注的,那么何为大数据?它是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。何又为python?python是一种面向对象的解释型计算机程序设计语言。

       这些都是百度上给出的含义,那么python能处理数以百万行级的大数据么?答案是当然可以,但是也有它的优势与劣势。而对于现在的大数据量,百万行级并不算多,而其起点一般都是在10亿以上。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、巨大的数据不是语言所能解决的,需要处理数据的框架虽然小众,但是python还是有处理大数据的框架的,或者一些框架也支持python

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

       知晓了以上python用于处理大数据的优势与劣势,总的来说用Python来做整个流程的框架,然后核心的CPU密集操作部分调用C函数,这样开发效率和性能都不错,但缺点是对团队的要求又高了(尤其涉及到Python+C语言的多线程操作),所以,鱼与熊掌不可兼得。如果一定要兼得,必须得自己加倍学习加倍努力!

#标签:python 大数据