python 能处理数据库中百万行级的数据吗?

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

王守崑,推荐系统,数据挖掘

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

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

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

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

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

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

1、CPU密集型操作

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

2、IO密集型操作

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

结论

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

我很喜欢用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是并行计算的框架(大数据处理的效率在于良好的分布计算逻辑,而不是什么语言)

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

使用python可以,但对速度要求较高的关键模块,还是要用C重写。

陈木生,人生苦短我用python:)

大量數據處理的瓶頸是在IO,而不是在哪個語言。語言選擇真的是要看個人口味、品味。

可以看看 Douban 的DPark

码代码比程序时间复杂度更cost

Levi.Wang,是的,我喜欢帅气的女子亥纸

Hadoop在大数据处理领域应用广泛,而它官方默认的程序示例是用java写的,其实大数据处理的今天,语言的快慢已经不足以影响到速度了. java跟python的速度跟C没有可比性,但他们的高开发效率和越来越好的解释器会让他们在数据处理领域大放异彩.

牟小峰,数据挖掘

什么叫处理? 100万的数据,如果只是传输的话,python和c/c++差不多;如果用来计算话题模型的话,python的速度为c/c++的1/10,内存消耗为10倍多。

zxskzxsk h,太低调了也不好……

使用Python调用vtk库对100万行的数据进行可视化,结果内存爆满,使用C++就没有问题,Python很占内存,不知道为什么……

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

Python调用vtk库对面片数量我测试过是没有限制的好像,你所说的100万多数据是不是都是存入了python的list中,list是有上限限制的。如果不存入list,应该是没有渲染上限的。

python能处理多大的数据-Python 适合大数据量的处理吗?相关推荐

  1. react进入路由前获取数据_react之传递数据的几种方式props传值、路由传值、状态提升、redux、context...

    父组件: import { Route, Switch, Redirect } from 'react-router-dom' class App extends Component { render ...

  2. 大数据之父_大新闻!Python 之父重新出山,加入微软开发部

    2019 年 11 月,DropBox 官博发布了一篇<感谢你,Guido>的文章,透露出龟叔(Guido van Rossum)要离职退休的消息.后来龟叔自己也在推特证实了. 时隔一年, ...

  3. python大数据和java大数据的区别-未来Java、大数据、Python哪个前景更好,薪资更高?...

    都知道现在最火爆的是人工智能.大数据.而人工智能和大数据主要用的语言就是Java和Python.今天我们就来分析一下,当前java,python和大数据,哪个就业前景更好?自己该学哪一个? Java和 ...

  4. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  5. 【Python开发】Python 适合大数据量的处理吗?

    Python 适合大数据量的处理吗? python 能处理数据库中百万行级的数据吗? 处理大规模数据时有那些常用的python库,他们有什么优缺点?适用范围如何? 需要澄清两点之后才可以比较全面的看这 ...

  6. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  7. python编写spark程序 视频_【Python版pyspark】Spark大数据基础入门视频课程

    [注意:本课程只包含pyspark系列课程的基础入门部分] Python版本的pyspark是学习Python的人的福音,为广大的Python开发人员提供了一个使用Python调用Spark接口处理大 ...

  8. 大数据可视化python_大数据分析之Python数据可视化的四种简易方法

    本篇文章探讨了大数据分析之Python数据可视化的四种简易方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 数据可视化是任何数据科学或机器学习项目的一个重要组成部分 ...

  9. 大数据 python和java_大数据入门选择Python还是Java?

    原标题:大数据入门选择Python还是Java? java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两 ...

  10. python大数据书籍推荐-大数据入门书籍推荐《Python 大数据基础》

    本书系统地讲解了大数据处理相关的过程,并通过Python程序的例子讲解了如何使用Python语言对数据进行采集.存储.分析及可视化.本书的章节设计以目标为导向,首先介绍大数据处理各个环节要做什么事情, ...

最新文章

  1. 世界人工智能大赛来了!
  2. Excel数组公式从入门到精通之精通篇
  3. Arduino 各种模块篇 motor shield
  4. Golang 入门笔记(一)
  5. C语言中 \r, \n, \b
  6. oracle text类型_数据库的一些注入技巧Oracle
  7. org.attoparser.ParseException: Could not parse as expression: “
  8. PyTorch多GPU并行训练方法及问题整理
  9. python socket connect 阻塞_python – 如何获得非阻塞socket connect()?
  10. 幼儿园观察记录的目的和目标_幼儿园教育活动内容实施中的观察与记录有何目的...
  11. 一种基于Android、iOS系统的移动端身份证识别技术,手机拍照扫描识别
  12. 汇编语言学习笔记 - 杂记(寄存器,寻址方式,指令操作合法性)
  13. 编码原则 之 Separation of Concerns
  14. 阿里云ECS云服务器Linux Tomcat启动慢 访问网页转圈
  15. 素材之家,中国免费素材下载网站!下免费素材就到素材之家!
  16. 手机呼叫转移怎么设置
  17. 有没有python搜题_python搜题公众号
  18. 大二Web课程设计——美食网站设计与实现(HTML+CSS+JavaScript)
  19. html读秒倒计时,读秒倒计时
  20. 蓝牙(六)HFP协议

热门文章

  1. 前端基础JavaScript
  2. linux_tomcat
  3. hdu1255 覆盖的面积(线段树面积交)
  4. iOS runtime和runloop
  5. .NET开发中的连接字串
  6. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...
  7. python绘制动态模拟图-Python 模拟动态产生验证码图片
  8. 西安python培训班多少钱-西安Python培训班哪个好
  9. python怎么用拼音-又一个奇葩要求,Python是如何将“中文”转“拼音”的?
  10. python编程语法大全-python语法汇总