为什么说Python是大数据全栈式开发语言?

作者&投稿:枕儿 (若有异议请与网页底部的电邮联系)
~ 就像只要会JavaScript就可以写出完整的Web应用,只要会Python,就可以实现一个完整的大数据处理平台。\x0d\x0a\x0d\x0a云基础设施\x0d\x0a\x0d\x0a这年头,不支持云平台,不支持海量数据,不支持动态伸缩,根本不敢说自己是做大数据的,顶多也就敢跟人说是做商业智能(BI)。\x0d\x0a\x0d\x0a云平台分为私有云和公有云。私有云平台如日中天的 OpenStack\x0d\x0a \x0d\x0a,就是Python写的。曾经的追赶者CloudStack,在刚推出时大肆强调自己是Java写的,比Python有优势。结果,搬石砸脚,2015年\x0d\x0a初,CloudStack的发起人Citrix宣布加入OpenStack基金会,CloudStack眼看着就要寿终正寝。\x0d\x0a\x0d\x0a如果嫌麻烦不想自己搭建私有云,用公有云,不论是AWS,GCE,Azure,还是阿里云,青云,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青云只提供Python SDK。可见各家云平台对Python的重视。\x0d\x0a\x0d\x0a提到基础设施搭建,不得不提Hadoop,在今天,Hadoop因为其MapReduce数据处理速度不够快,已经不再作为大数据处理的首选,但\x0d\x0a是HDFS和Yarn——Hadoop的两个组件——倒是越来越受欢迎。Hadoop的开发语言是Java,没有官方提供Python支持,不过有很多第\x0d\x0a三方库封装了Hadoop的API接口(pydoop,hadoopy等等)。\x0d\x0a\x0d\x0aHadoop MapReduce的替代者,是号称快上100倍的 Spark ,其开发语言是Scala,但是提供了Scala,Java,Python的开发接口,想要讨好那么多用Python开发的数据科学家,不支持Python,真是说不过去。HDFS的替代品,比如GlusterFS, Ceph 等,都是直接提供Python支持。Yarn的替代者, Mesos 是C++实现,除C++外,提供了Java和Python的支持包。\x0d\x0a\x0d\x0aDevOps\x0d\x0a\x0d\x0aDevOps有个中文名字,叫做 开发自运维 。互联网时代,只有能够快速试验新想法,并在第一时间,安全、可靠的交付业务价值,才能保持竞争力。DevOps推崇的自动化构建/测试/部署,以及系统度量等技术实践,是互联网时代必不可少的。\x0d\x0a\x0d\x0a自动化构建是因应用而易的,如果是Python应用,因为有setuptools, pip, virtualenv, tox, \x0d\x0aflake8等工具的存在,自动化构建非常简单。而且,因为几乎所有Linux系统都内置Python解释器,所以用Python做自动化,不需要系统预\x0d\x0a安装什么软件。\x0d\x0a\x0d\x0a自动化测试方面,基于Python的 Robot Framework 企业级应用最喜欢的自动化测试框架,而且和语言无关。Cucumber也有很多支持者,Python对应的Lettuce可以做到完全一样的事情。 Locust 在自动化性能测试方面也开始受到越来越多的关注。\x0d\x0a\x0d\x0a自动化配置管理工具,老牌的如Chef和Puppet,是Ruby开发,目前仍保持着强劲的势头。不过,新生代 Ansible 和 SaltStack ——均为Python开发——因为较前两者设计更为轻量化,受到越来越多开发这的欢迎,已经开始给前辈们制造了不少的压力。\x0d\x0a\x0d\x0a在系统监控与度量方面,传统的Nagios逐渐没落,新贵如 Sensu 大受好评,云服务形式的New Relic已经成为创业公司的标配,这些都不是直接通过Python实现的,不过Python要接入这些工具,并不困难。\x0d\x0a\x0d\x0a除了上述这些工具,基于Python,提供完整DevOps功能的PaaS平台,如 Cloudify 和 Deis ,虽未成气候,但已经得到大量关注。\x0d\x0a\x0d\x0a网络爬虫\x0d\x0a\x0d\x0a大数据的数据从哪里来?除了部分企业有能力自己产生大量的数据,大部分时候,是需要靠爬虫来抓取互联网数据来做分析。\x0d\x0a\x0d\x0a网络爬虫是Python的传统强势领域,最流行的爬虫框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能够独当一面的类库。\x0d\x0a\x0d\x0a不过,网络爬虫并不仅仅是打开网页,解析HTML这么简单。高效的爬虫要能够支持大量灵活的并发操作,常常要能够同时几千甚至上万个网页同时抓取,传统的\x0d\x0a线程池方式资源浪费比较大,线程数上千之后系统资源基本上就全浪费在线程调度上了。Python由于能够很好的支持协程( Coroutine )操作,基于此发展起来很多并发库,如Gevent,Eventlet,还有Celery之类的分布式任务框架。被认为是比AMQP更高效的ZeroMQ也是最早就提供了Python版本。有了对高并发的支持,网络爬虫才真正可以达到大数据规模。\x0d\x0a\x0d\x0a抓取下来的数据,需要做分词处理,Python在这方面也不逊色,著名的自然语言处理程序包NLTK,还有专门做中文分词的Jieba,都是做分词的利器。\x0d\x0a\x0d\x0a数据处理\x0d\x0a\x0d\x0a万事俱备,只欠东风。这东风,就是数据处理算法。从统计理论,到数据挖掘,机器学习,再到最近几年提出来的深度学习理论,数据科学正处于百花齐放的时代。数据科学家们都用什么编程?\x0d\x0a\x0d\x0a如果是在理论研究领域,R语言也许是最受数据科学家欢迎的,但是R语言的问题也很明显,因为是统计学家们创建了R语言,所以其语法略显怪异。而且\x0d\x0aR语言要想实现大规模分布式系统,还需要很长一段时间的工程之路要走。所以很多公司使用R语言做原型试验,算法确定之后,再翻译成工程语言。\x0d\x0a\x0d\x0aPython也是数据科学家最喜欢的语言之一。和R语言不同,Python本身就是一门工程性语言,数据科学家用Python实现的算法,可以直\x0d\x0a接用在产品中,这对于大数据初创公司节省成本是非常有帮助的。正式因为数据科学家对Python和R的热爱,Spark为了讨好数据科学家,对这两种语言\x0d\x0a提供了非常好的支持。\x0d\x0a\x0d\x0aPython的数据处理相关类库非常多。高性能的科学计算类库NumPy和SciPy,给其他高级算法打了非常好的基础,matploglib让\x0d\x0aPython画图变得像Matlab一样简单。Scikit-learn和Milk实现了很多机器学习算法,基于这两个库实现的 Pylearn2 ,是深度学习领域的重要成员。 Theano 利用GPU加速,实现了高性能数学符号计算和多维矩阵计算。当然,还有 Pandas ,一个在工程领域已经广泛使用的大数据处理类库,其DataFrame的设计借鉴自R语言,后来又启发了Spark项目实现了类似机制。\x0d\x0a\x0d\x0a对了,还有 iPython ,这个工具如此有用,以至于我差点把他当成标准库而忘了介绍。iPython是一个交互式Python运行环境,能够实时看到每一段Python代码的结果。默认情况下,iPython运行在命令行,可以执行 ipython notebook 在网页中运行。用matplotlib绘制的图可以直接嵌入式的显示在iPython Notebook中。\x0d\x0a \x0d\x0aiPython Notebook的笔记本文件可以共享给其他人,这样其他人就可以在自己的环境中重现你的工作成果;如果对方没有运行环境,还可以直接转换成HTML或者PDF。\x0d\x0a\x0d\x0a为什么是Python\x0d\x0a\x0d\x0a正是因为应用开发工程师、运维工程师、数据科学家都喜欢Python,才使得Python成为大数据系统的全栈式开发语言。\x0d\x0a\x0d\x0a对于开发工程师而言,Python的优雅和简洁无疑是最大的吸引力,在Python交互式环境中,执行 import this\x0d\x0a \x0d\x0a,读一读Python之禅,你就明白Python为什么如此吸引人。Python社区一直非常有活力,和NodeJS社区软件包爆炸式增长不\x0d\x0a同,Python的软件包增长速度一直比较稳定,同时软件包的质量也相对较高。有很多人诟病Python对于空格的要求过于苛刻,但正是因为这个要求,才\x0d\x0a使得Python在做大型项目时比其他语言有优势。OpenStack项目总共超过200万行代码,证明了这一点。\x0d\x0a\x0d\x0a对于运维工程师而言,Python的最大优势在于,几乎所有Linux发行版都内置了Python解释器。Shell虽然功能强大,但毕竟语法不够优雅,写比较复杂的任务会很痛苦。用Python替代Shell,做一些复杂的任务,对运维人员来说,是一次解放。\x0d\x0a\x0d\x0a对于数据科学家而言,Python简单又不失强大。和C/C++相比,不用做很多的底层工作,可以快速进行模型验证;和Java相比,Python语法简\x0d\x0a洁,表达能力强,同样的工作只需要1/3代码;和Matlab,Octave相比,Python的工程成熟度更高。不止一个编程大牛表达过,Python\x0d\x0a是最适合作为大学计算机科学编程课程使用的语言——MIT的计算机入门课程就是使用的Python——因为Python能够让人学到编程最重要的东西——\x0d\x0a如何解决问题。

为什么入门大数据选择python而不是java
答:从语言的适用性看,Python有个外号叫“胶水语言”,就是说Python可以随意地组合它和其它程序,它可以作为一个中间处理模块的代码把其他代码“粘合”在一个工程里面,从而快速的部署和实施。除了在大数据和数据科学领域,它在web前端开发等领域也有广泛应用。从学习难易度来看,作为一个为“优雅”而生的语言...

为什么从事大数据行业,一定要学习Python?
答:4、Python还拥有一系列非常优秀的库,这省了你编程中的很多时间。尤其是在人工智能和机器学习领域,这些库的价值体现得更为明显。5、不管怎么说,从事大数据工作,少不得要在网络上爬取数据,不用Python爬虫,你还打算用什么呢?因此,在当前的大数据领域,从事大数据行业必学Python。

为什么用Python做数据分析
答:通过上面的描述,相信大家已经知道了使用Python做数据分析的优点了。Python语言得益于它的简单方便,使得其在大数据、数据分析以及人工智能方面都有十分明显的存在感,对于数据分析从业者以及想要进入数据分析行业的人来说,简单易学容易上手的优势也是一个优势,所以不管大家是否进入数据分析行业,学习Python是没...

Python可以做大数据吗
答:Python在大数据处理方面的优势:1. 异常快捷的开发速度,代码量少;2. 丰富的数据处理包,使用十分方便;3. 内部类型使用成本低;4. 百万级别数据可以采用Python处理。Python在大数据处理方面的劣势:1. python线程有gil,多线程的时候只能在一个核上跑,浪费了多核服务器;2. python执行效率不高,在...

python 为什么可以大数据分析
答:一方面是搭建数据分析框架的要求,比如确定分析思路就需要用到营销、管理等理论知识来指导;另一方面是针对数据分析结论提出有指导意义的分析建议。

为什么从事大数据行业,一定要学习Python?
答:Python编程语言由于自身具有的“清晰”、“简略”等特点而受到众多使用Python编程语言的IT从业者喜爱。而且,对于初学者来说,比起其他编程语言,Python 更容易上手。加上很多企业都使用Python编程语言,促进了Python程序员的市场需求量增加 首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,...

大数据为什么要学python
答:我们先来看下大数据一般的几个方向:方向一:运维方向,涵盖linux基础,原生Hadoop,华为Hadoop搭建运维,华为数据挖掘工具使用,数学算法 方向二:运维方向,涵盖linux基础,原生Hadoop搭建运维,数学算法。方向三,开发方向,涵盖linux基础,原生Hadoop搭建运维,数学算法,Python(后期)所以,开发语言在大数据...

为什么学大数据一定要学Python?
答:比人工是好多了。比如微博等社交软件经常被那些追明星的软件爬。把明星的动态实时同步到他的软件上。在大数据这一块最好的例子就是百度了,百度用他的baidu spider(一个特厉害爬虫)来获取数据。还有python在web开发上很有潜力,所以用python来辅助大数据。学习python也挺容易。但如果它是你的第一门编程...

大数据与python有什么关系,学完大数据以后能做Python吗?
答:大数据可以看作一门学科,python是一种编程语言,大数据的课程安排中肯定包含python学习。给你举个例子:南京北大青鸟大数据学习需要掌握:Java编程基础,Hadoop生态圈,Spark相关技术,Python,项目开发实战,系统管理优化,企业使用阿里云平台开发所需要的技术等。毕业后可以从事python相关工作。

大数据和python有什么区别
答:很多初学者经常比较哪种语言是最好的,其实:编程语言没有最好,只有最适用,即在某一种中场景下最适用!!!经常会有很多小伙伴们在一些论坛中喊,PHP是世界第一语言;Java是宇宙第一语言;人生苦短,我用Python等等。客观的说,如果以后想从事大数据开发方向,两种语言都可能会用到,可以先学一门,...