大数据处理需要用到的九种编程语言

随着大数据的热潮不断升温,几乎各个领域都有洪水倾泻般的信息涌来,面对用户成千上万的浏览记录、记录行为数据,如果就单纯的Excel来进行数据处理是远远不能满足的。但如果只用一些操作软件来分析,而不怎么如何用逻辑数据来分析的话,那也只是简单的数据处理。

替代性很高的工作,而无法深入规划策略的核心。

当然,基本功是最不可忽略的环节,想要成为数据科学家,对于这几个程序你应该要有一定的认识:

R

若要列出所有程序语言,你能忘记其他的没关系,但最不能忘的就是R。从1997年悄悄地出现,最大的优势就是它免费,为昂贵的统计软件像是Matlab或SAS的另一种选择。

但是在过去几年来,它的身价大翻转,变成了资料科学界眼中的宝。不只是木讷的统计学家熟知它,包括WallStreet交易员、生物学家,以及硅谷开发者,他们都相当熟悉R。多元化的公司像是Google、Facebook、美国银行以及NewYorkTimes通通都使用R,它的商业效用持续提高。

R的好处在于它简单易上手,透过R,你可以从复杂的数据集中筛选你要的数据,从复杂的模型函数中操作数据,建立井然有序的图表来呈现数字,这些都只需要几行程序代码就可以了,打个比方,它就像是好动版本的Excel。

R最棒的资产就是活跃的动态系统,R社群持续地增加新的软件包,还有以内建丰富的功能集为特点。目前估计已有超过200万人使用R,最近的调查显示,R在数据科学界里,到目前为止最受欢迎的语言,占了回复者的61%(紧追在后的是39%的Python)。

它也吸引了WallStreet的注目。传统而言,证券分析师在Excel档从白天看到晚上,但现在R在财务建模的使用率逐渐增加,特别是可视化工具,美国银行的副总裁NiallO’Conno说,「R让我们俗气的表格变得突出」。

在数据建模上,它正在往逐渐成熟的专业语言迈进,虽然R仍受限于当公司需要制造大规模的产品时,而有的人说他被其他语言篡夺地位了。

“R更有用的是在画图,而不是建模。”顶尖数据分析公司Metamarkets的CEO,MichaelDriscoll表示,

“你不会在Google的网页排名核心或是Facebook的朋友们推荐算法时看到R的踪影,工程师会在R里建立一个原型,然后再到Java或Python里写模型语法”。

举一个使用R很有名的例子,在2010年时,PaulButler用R来建立Facebook的世界地图,证明了这个语言有多丰富多强大的可视化数据能力,虽然他现在比以前更少使用R了。

“R已经逐渐过时了,在庞大的数据集底下它跑的慢又笨重”Butler说。

所以接下来他用什么呢?

Python

如果说R是神经质又令人喜爱的Geek,那Python就是随和又好相处的女生。

Python结合了R的快速、处理复杂数据采矿的能力以及更务实的语言等各个特质,迅速地成为主流,Python比起R,学起来更加简单也更直观,而且它的生态系统近几年来不可思议地快速成长,在统计分析上比起R功能更强。

Butler说,“过去两年间,从R到Python地显著改变,就像是一个巨人不断地推动向前进”。

在数据处理范畴内,通常在规模与复杂之间要有个取舍,而Python以折衷的姿态出现。IPythonNotebook(记事本软件)和NumPy被用来暂时存取较低负担的工作量,然而Python对于中等规模的数据处理是相当好的工具;Python拥有丰富的资料族,提供大量的工具包和统计特征。

美国银行用Python来建立新产品和在银行的基础建设接口,同时也处理财务数据,“Python是更广泛又相当有弹性,所以大家会对它趋之若鹜。”O’Donnell如是说。

然而,虽然它的优点能够弥补R的缺点,它仍然不是最高效能的语言,偶尔才能处理庞大规模、核心的基础建设。Driscoll是这么认为的。

Julia

今日大多数的数据科学都是透过R、Python、Java、Matlab及SAS为主,但仍然存在着鸿沟要去弥补,而这个时候,新进者Julia看到了这个痛点。

Julia仍太过于神秘而尚未被业界广泛的采用,但是当谈到它的潜力足以抢夺R和Python的宝座时,数据黑客也难以解释。原因在于Julia是个高阶、不可思议的快速和善于表达的语言,比起R要快的许多,比起Python又有潜力处理更具规模的数据,也很容易上手。

“Julia会变的日渐重要,最终,在R和Python可以做的事情在Julia也可以”。Butler是这么认为的。

就现在而言,若要说Julia发展会倒退的原因,大概就是它太年轻了。Julia的数据小区还在初始阶段,在它要能够和R或Python竞争前,它还需要更多的工具包和软件包。

Driscoll说,它就是因为它年轻,才会有可能变成主流又有前景。

Java

Driscoll说,Java和以Java为基础的架构,是由硅谷里最大的几家科技公司的核心所建立的,如果你从Twitter、Linkedin或是Facebook里观察,你会发现Java对于所有数据工程基础架构而言,是非常基础的语言。

Java没有和R和Python一样好的可视化功能,它也不是统计建模的最佳工具,但是如果你需要建立一个庞大的系统、使用过去的原型,那Java通常会是你最基的选择。

Hadoop and Hive

为了迎合大量数据处理的需求,以Java为基础的工具群兴起。Hadoop为处理一批批数据处理,发展以Java为基础的架构关键;相较于其他处理工具,Hadoop慢许多,但是无比的准确和可被后端数据库分析广泛使用。和Hive搭配的很好,Hive是基于查询的架构下,运作的相当好。

Scala

又是另一个以Java为基础的语言,和Java很像,对任何想要进行大规模的机械学习或是建立高阶的算法,Scala会是逐渐兴起的工具。它是善于呈现且拥有建立可靠系统的能力。

“Java像是用钢铁建造的;Scala则是让你能够把它拿进窑烤然后变成钢的黏土”Driscoll说。

Kafka andStorm

说到当你需要快速的、实时的分析时,你会想到什么?Kafka将会是你的最佳伙伴。其实它已经出现五年有了,只是因为最近串流处理兴起才变的越来越流行。

Kafka是从Linkedin内诞生的,是一个特别快速的查询讯息系统。Kafka的缺点呢?就是它太快了,因此在实时操作时它会犯错,有时候会漏掉东西。

鱼与熊掌不可兼得,「必须要在准确度跟速度之间做一个选择」,Driscoll说。所以全部在硅谷的科技大公司都利用两个管道:用Kafka或Storm处理实时数据,接下来打开Hadoop处理一批批处理数据系统,这样听起来有点麻烦又会有些慢,但好处是,它非常非常精准。

Storm是另一个从Scala写出来的架构,在硅谷逐渐大幅增加它在串流处理的受欢迎程度,被Twitter并购,这并不意外,因为Twitter对快速事件处理有极大的兴趣。

Matlab

Matlab可以说是历久不衰,即使它标价很高;在非常特定的利基市场它使用的相当广泛,包括密集的研究机器学习、信号处理、图像辨识等等。

Octave

Octave和Matlab很像,除了它是免费的之外。然而,在学术信号处理的圈子,几乎都会提到它。

GO

GO是另一个逐渐兴起的新进者,从Google开发出来的,放宽点说,它是从C语言来的,并且在建立强大的基础架构上,渐渐地成为Java和Python的竞争者。

这么多的软件可以使用,但我认为不见得每个都一定要会才行,知道你的目标和方向是什么,就选定一个最适合的工具使用吧!可以帮助你提升效率又达到精准的结果。

(责任编辑:mengyishan)

时间: 2025-01-31 06:05:11

大数据处理需要用到的九种编程语言的相关文章

Hadoop——大数据处理的宠儿

驱动大数据增长的主要因素包括移动设备和社交网络的大幅度增长.以往纸质文件的数字化以及科研数据的增长."他们的存档文件正在高速增长,因为他们并不清楚哪些需要保存,哪些不需要保存,"EMC旗下的Isilon公司美国首席技术官Rob Peglar说道. 各个产业的公司都在为大数据分析投入大量资金.其中一个产业为对病人数据进行分析诊疗的医疗产业.Peglar说,在金融服务产业,对数据进行定性分析也颇受关注.在这方面,分析的是杂乱无章的股票交易数据.大数据分析在制造和设计业的应用也有所增长,但增

盘点九种引人瞩目的开源大数据技术

本文讲的是盘点九种引人瞩目的开源大数据技术,越来越多的公司开始聚焦于大数据技术领域,而开源恰恰是大数据技术的灵魂.以下将为您介绍九大引人注目的开源大数据技术,请拭目以待: 1.Apache Hadoop Apache hadoop是一个开源的分布式计算框架,最初由Doug为支持其开源Web搜索引擎Nutch所创立.通过集成MapReduce技术,Hadoop将大数据分布到多个数据节点上进行处理.Hadoop遵循Apache 2.0许可证,可以轻松处理结构化.半结构化和非结构化数据,一举成为现在非

盘点九大热门开源大数据处理技术

随着全球企业和个人数据的爆炸式增长,数据本身正在取代软件和硬件成为驱动信息技术行业和全球经济的下一个大"油田". 与PC.web等断层式信息技术革命相比,大数据的最大的不同是,这是一场由"开源软件"驱动的革命.从IBM.Oracle等巨头到雨后春笋般的大数据创业公司,开源软件与大数据的结合迸发出惊人的产业颠覆性力量,甚至VMware这样的过去完全依赖专有软件的厂商都开始拥抱开源大数据工具. 下面,我们就列举九大最热门的大数据开源技术供大家参考. 一.Hadoop A

这5种必知的大数据处理框架技术,你的项目应该使用哪种?

本文将介绍大数据系统一个最基本的组件:处理框架.处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据.数据的计算则是指从大量单一数据点中提取信息和见解的过程. 下文将介绍这些框架: 仅批处理框架: Apache Hadoop 仅流处理框架: Apache Storm Apache Samza 混合框架: Apache Spark Apache Flink 大数据处理框架是什么? 处理框架和处理引擎负责对数据系统中的数据进行计算.虽然"引擎"

这5种必知的大数据处理框架技术,你的项目到底应该使用其中的哪几种

大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才经历了大规模扩展. 本文将介绍大数据系统一个最基本的组件:处理框架.处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据.数据的计算则是指从大量单一数据点中提取信息和见解的过程. 下文将介绍这些框架: 1.仅批处理框架: Apache Hadoop 2.仅流处

大数据处理技术的趋势-五种开源技术介绍

大数据领域的处理,我自己本身接触的时间也不长,正式的项目还在开发之中,深受大数据处理方面的吸引,所以也就有写文章的想法的了.大数据以Hadoop以及"NO SQL"为主的Mongo和Cassandra等数据库技术在展现.现在数据的实时分析将可能容易一些.现在集群的转换将越来越可靠,20分钟以内就能够完成.因为我们用表来支持?但是这些是仅仅是一些比较新的,未开发的优点和不平凡的大机会超过了这些常规的猜想. 你知道么,在现在的市场上超过25万个开源技术出现了.围绕在我们身边,这些越来越复杂

一种异构集群中能量高效的大数据处理算法

一种异构集群中能量高效的大数据处理算法 丁有伟,秦小麟,刘亮,王涛春 集群的能量消耗已经超过了其本身的硬件购置费用,而大数据处理需要大规模的集群耗费大量时间,因此如何进行能量高效的大数据处理是数据拥有者和使用者亟待解决的问题,也是对能源和环境的一个巨大挑战.现有的研究一般通过关闭部分节点以减少能量消耗,或者设计新的数据存储策略以便实施能量高效的数据处理.通过分析发现即便使用最少的节点也存在很大的能源浪费,而新的数据存储策略对于已经部署好的集群会造成大规模的数据迁移,消耗额外的能量.针对异构集群下

流式大数据处理的三种框架:Storm,Spark和Samza

许多分布式计算系统都可以实时或接近实时地处理大数据流.本文将对三种Apache框架分别进行简单介绍,然后尝试快速.高度概述其异同. Apache Storm 在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology).这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行.一个拓扑中包括spout和bolt两种角色,其中spout发送消息,负责将数据流以tuple元组的形式发送出去;而bolt

一共81个,开源大数据处理工具汇总(上)

本文一共分为上下两部分.我们将针对大数据开源工具不同的用处来进行分类,并且附上了官网和部分下载链接,希望能给做大数据的朋友做个参考.下面是第一部分. 查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动. Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的J