首页 首页 大数据 大数据入门 查看内容

处理大规模数据时有那些常用的Python库,他们有什么优缺点?适用范围如何?

木马童年 2018-10-13 16:10 29 0

Python 能处理数据库中百万行级的数据吗,处理大规模数据时有那些常用的Python库,他们有什么优缺点?适用范围如何?需要澄清两点之后才可以比较全面的看这个问题:1、百万行级不算大数据量,以目前的互联网应用来看, ...

Python 能处理数据库中百万行级的数据吗,处理大规模数据时有那些常用的Python库,他们有什么优缺点?适用范围如何?

需要澄清两点之后才可以比较全面的看这个问题:

1、百万行级不算大数据量,以目前的互联网应用来看,大数据量的起点是10亿条以上。

2. 处理的具体含义,如果是数据载入和分发,用python是很高效的;如果是求一些常用的统计量和求一些基本算法的结果,python也有现成的高效的库,C实现的和并行化的;如果是纯粹自己写的算法,没有任何其他可借鉴的,什么库也用不上,用纯python写是自讨苦吃。

python的优势不在于运行效率,而在于开发效率和高可维护性。针对特定的问题挑选合适的工具,本身也是一项技术能力。

匿名用户

我很喜欢用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

python数据处理的包:

1、自带正则包, 文本处理足够了

2、cElementTree, lxml 默认的xml速度在数据量过大的情况下不足

3、beautifulsoup 处理html

4、hadoop(可以用python) 并行处理,支持python写的map reduce,足够了, 顺便说一下阿里巴巴的odps,和hadoop一样的东西,支持python写的udf,嵌入到sql语句中

5、numpy, scipy, scikit-learn 数值计算,数据挖掘

6、dpark(搬楼上的答案)类似hadoop一样的东西

1,2,3,5是处理文本数据的利器(python不就处理文本数据方便嘛),4,6是并行计算的框架(大数据处理的效率在于良好的分布计算逻辑,而不是什么语言)

暂时就这些,最好说一个方向,否则不知道处理什么样的数据也不好推荐包,所以没有头绪从哪里开始介绍这些包

郭大宽 TerarkDB, 国产高性能存储引擎

这要看具体的应用场景,从本质上来说,我们把问题分解为两个方面:

1、CPU密集型操作

即我们要计算的大数据,大部分时间都在做一些数据计算,比如求逆矩阵、向量相似度、在内存中分词等等,这种情况对语言的高效性非常依赖,Python做此类工作的时候必然性能低下。

2、IO密集型操作

假如大数据涉及到频繁的IO操作,比如从数据流中每次读取一行,然后不做什么复杂的计算,频繁的输入输出到文件系统,由于这些操作都是调用的操作系统接口,所以用什么语言已经不在重要了。

用Python来做整个流程的框架,然后核心的CPU密集操作部分调用C函数,这样开发效率和性能都不错,但缺点是对团队的要求又高了(尤其涉及到Python+C的多线程操作)...所以...鱼与熊掌不可兼得。如果一定要兼得,必须得自己牛逼。

Xiaoyu Ma 大数据平台码农

我们公司每天处理数以P记的数据,有个并行grep的平台就是python做的。当初大概是考虑快速成型而不是极限速度,但是事实证明现在也跑得杠杠的。大数据很多时候并不考虑太多每个节点上的极限速度,当然速度是越快越好,但是再更高层次做优化(比如利用data locality减少传输,建索引快速join,做sample优化partition,用bloomfilter快速测试等等),把python换成C并不能很大程度上提升效率。

yishen chen 我是很多python库的实现都是用其他语言写的(C比较多),只是用Python做了个包装而已。库的效率本身不低。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

数据库 大数据 互联网 数据挖掘 小数据 数据共享
0
为您推荐
大数据分析:PC端VS移动端中的搜索引擎

大数据分析:PC端VS移动端中的搜索引擎

还没搞清楚PC的时候,移动互联网来了,还没搞清楚移动互联网的时候,大数据来了。今天…...

数据挖掘领域十大经典算法之—K-Means算法(超详细附代码)

数据挖掘领域十大经典算法之—K-Means算法

简介 又叫K-均值算法,是非监督学习中的聚类算法。 基本思想 k-means算法比较简单…...

2014年全球及中国互联网数据全景

2014年全球及中国互联网数据全景

全球活跃社交用户于 2014 年 8 月突破了 20 亿人;全球独立移动设备用户渗透率于 2014 …...

Hadoop能够风行十年吗

Hadoop能够风行十年吗

Hadoop技术已经无处不在。不管是好是坏,Hadoop已经成为大数据的代名词。短短几年间,…...

大数据技术之争:PIG对Hive

大数据技术之争:PIG对Hive

Pig与Hive已经成为企业实现大规模数据交互的必要工具,其突出优势在于无需编写复杂的M…...

阿里双11大数据  移动电商的名头已坐实

阿里双11大数据 移动电商的名头已坐实

全民网络购物狂欢节已经结束,最终的成交额定在571亿,这与阿里早期的预估值不相上下…...