时间:2016-11-5来源:本站原创作者:佚名
程序语言数据处理的编程语言

有关大数据的话题一直很火热。伴随着信息的爆炸式增长,大数据渗透到了各行各业,广泛应用于公司中,同时也使得传统的软件比如Excel看起来很笨拙。数据分析不再只是书呆子的事,同时其对高复杂性分析、实时处理的需求也比以往更加庞大。

那么筛选海量数据集最优的工具是什么呢?我们咨询了一些数据黑客关于他们在数据分析的核心工作中最喜欢的编程语言和工具包。

R语言

这份名单如果不以R开头,那就是彻头彻尾的疏忽。自年起,作为一门免费的,可替代Matlab或SAS等昂贵统计软件的语言,R被抛弃。

但是在过去的几年中,它却成了数据科学的宠儿—甚至成了统计学家、华尔街交易员、生物学家和硅谷开发者必不可少的工具。随着其商业价值的不断增长和传播,诸如谷歌、Facebook、美国银行和纽约时代周刊都在使用。

R简单易用。通过R,短短几行代码就可以筛选复杂的数据集,通过成熟的模型函数处理数据,制作精美的图表进行数据可视化。简直就是Excel的加强灵活版。

R最大的价值就是围绕其开发的活跃的生态圈:R社区在持续不断地向现存丰富的函数集增添新的包和特性。据估计R的使用者已经超过万人,最近的一项调查也显示R目前是数据科学领域最受欢迎的语言,大约61%的受访者使用R(第二名是Python,占比39%)。

在华尔街,R的使用比例也在不断增长。美国银行副总裁NiallO’Connor说:“以往,分析员通常是熬夜研究Excel文件,但是现在R正被逐渐地应用于金融建模,尤其是作为可视化工具。R促使了表格化分析的出局。”

作为一门数据建模语言,R正在走向成熟,尽管在公司需要大规模产品的时候R能力有限,也有些人说它已经被其他语言替代了。

Metamarkets公司的CEOMichaelDriscoll说:“R擅长的是勾画,而不是搭建,在Google的pagerank算法和Facebook的好友推荐算法实现的核心中是不会有R的。工程师会用R进行原型设计,再用Java或者Python将其实现。”

PaulButler在年用R构建了一个著名的Facebook世界地图,证明了R在数据可视化上的强大能力。然而他并不经常使用R。

Butler说:“由于在处理较大数据集时缓慢且笨拙,R在行业中已经有些沦为明日黄花了”

Python

在数据处理中,通常存在规模和技巧的权衡,Python作为一个折中出现了。IPythonnotebook和NumPy可以用于轻量工作的处理,而Python则是中级规模数据处理的有力工具。丰富的数据交流社区也是Python的优势,它提供了大量的Python工具包和特性。

美国银行利用Python开发新产品以及基础设施接口,同时也用于处理金融数据。O’Donnell说:“Python用途宽广且灵活,所以人们蜂拥而至”。

然而,Driscoll也提到它并不是高性能的语言,偶尔才会用于装配驱动大规模的核心基础设施。

JULIA

最主流的数据科学处理语言包括R、Python、Java、Matlab和SAS。但是这些语言仍然存在一些不足之处,而Julia正是待以观察的新人。

对大规模商用来说,Julia还是太晦涩了。但在谈到其取代R和Python领先地位的潜力的时候,数据极客们都会变得很激动。Julia是一门高级的,非常快的函数式语言。速度上比R快,可能比Python的扩展性更高,且相对易学。

Butler说:“Julia正在快速上升。最终将可以用Julia完成任何R和Python可以完成的事”。

如今的问题是Julia太“年轻”了。其数据交流社区仍处在早期发展阶段,在没有足够的包和工具之前是不足以与R和Python竞争的。

Driscoll说:“Julia很年轻,但正在积攒力量而且未来很可观”。

JAVA

在硅谷最大的科技公司里,Java和基于Java的框架构成了其底层的技术骨架。Driscoll说:“如果深入观察Twitter,Linkedin或者Facebook,你会发现Java是他们公司数据引擎架构的基础语言”。

Java并没有R和Python那样的数据可视化的能力,同时也不是最好的用于统计模型的语言。但是如果需要进行原型的基础开发和构建大规模系统,Java往往是最好的选择。

HADOOP和HIVE

为了满足数据处理的巨大需求,基于Java的工具群涌而现。作为基于Java的框架,Hadoop在批处理领域成为热点。Hadoop比其他处理工具速度要慢,但是它非常精确且被广泛的应用于后台分析,它很好的融合了Hive,一个运行在Hadoop上的基于查询的框架。

KAFKA和STORM

当需要快速、实时分析时怎么办?Kafka可以帮助你。它已经发展了大概五年时间,但最近才成为一个流处理的流行框架。

Kafka诞生于Linkedin公司的内部项目,是一个快速查询系统。至于Kafka的缺点呢?它太快了,实时的操作也导致了自身的错误,且偶尔还会遗失信息。

Driscoll说:“在精度和速度之间总需要做权衡,所以硅谷所有的大公司一般都双管齐下:用kafka和Storm进行实时处理,用Hadoop做批处理系统,虽然会慢一点但却十分精确”。

Storm是另一个用Scala写的框架,且它在硅谷以擅长流处理而受到极大的







































白癜风治疗
白癜风的治疗

转载请注明原文网址:http://www.gzdatangtv.com/jsyy/1413.html

------分隔线----------------------------