最受欢迎的10个大数据处理编程语言

在巨大的数据集中进行筛选的最好工具是什么?通过和数据骇客的交流,我们了解到他们用于硬核数据分析最喜欢的语言和工具包。

R语言

在这些语言名单中,如果R语言排第二,那就没其他能排第一。自1997年以来,作为昂贵的统计软件,如Matlab和SAS的免费替代品,它渐渐风靡全球。

在过去的几年时间中,R语言已经成为了数据科学的宠儿——数据科学现在不仅仅在书呆子一样的统计学家中人尽皆知,而且也为华尔街交易员,生物学家,和硅谷开发者所家喻户晓。各种行业的公司,例如Google,Facebook,美国银行,以及纽约时报都使用R语言,R语言正在商业用途上持续蔓延和扩散。

R语言有着简单而明显的吸引力。使用R语言,只需要短短的几行代码,你就可以在复杂的数据集中筛选,通过先进的建模函数处理数据,以及创建平整的图形来代表数字。它被比喻为是Excel的一个极度活跃版本。

R语言最伟大的资本是已围绕它开发的充满活力的生态系统:R语言社区总是在不断地添加新的软件包和功能到它已经相当丰富的功能集中。据估计,超过200万的人使用R语言,并且最近的一次投票表明,R语言是迄今为止在科学数据中最流行的语言,被61%的受访者使用(其次是Python,39%)。

此外,它的身影也渐渐出现在了华尔街。以前,银行分析师会全神贯注于Excel文件直到深夜,但现在R语言被越来越多地用于金融建模R,特别是作为一种可视化工具,Niall O’Connor,美国银行的副总裁如是说。 “R语言使我们平凡的表格与众不同,”他说。

R语言的日渐成熟,使得它成为了数据建模的首选语言,虽然当企业需要生产大型产品时它的能力会变得有限,也有的人说这是因为它的地位正在被其他语言篡夺。

“R更适合于做一个草图和大概,而不是详细的构建,”Michael Driscoll,Metamarkets的首席执行官说。 “你不会在谷歌的网页排名以及Facebook的朋友推荐算法的核心找到R语言。工程师会用R语言做原型,然后移交给用Java或Python写的模型。”

话说回来,早在2010年,Paul Butler就以R语言打造了全球的Facebook地图而著名,这证明了该语言丰富的可视化功能。尽管他现在已经不像以前那样频繁地使用R语言了。

“R正在一点点地过时,因为它的缓慢和处理大型数据集的笨重,”Butler说。

那么,他使用什么代替呢?请继续阅往下看。

Python

如果说R语言是一个神经质又可爱的高手,那么Python是它随和又灵活的表兄弟。作为一种结合了R语言快速对复杂数据进行挖掘的能力并构建产品的更实用语言,Python迅速得到了主流的吸引力。Python是直观的,并且比R语言更易于学习,以及它的生态系统近年来急剧增长,使得它更能够用于先前为R语言保留的统计分析。

“这是这个行业的进步。在过去的两年时间中,从R语言到Python已经发生了非常明显的转变,”Butler说。

在数据处理中,在规模和复杂性之间往往会有一个权衡,于是Python成为了一种折中方案。IPython notebook和NumPy可以用作轻便工作的一种暂存器,而Python可以作为中等规模数据处理的强大工具。丰富的数据社区,也是Python的优势,因为可以提供了大量的工具包和功能。

美国银行使用Python在银行的基础架构中构建新的产品和接口,同时也用Python处理财务数据。“Python广泛而灵活,因此人们趋之若鹜,”O’Donnell说。

不过,它并非最高性能的语言,只能偶尔用于大规模的核心基础设施,Driscoll这样说道。

Julia

虽然当前的数据科学绝大多数是通过R语言,Python,Java,MatLab和SAS执行的。但依然有其他的语言存活于夹缝中,Julia就是值得一看的后起之秀。

业界普遍认为Julia过于晦涩难懂。但数据骇客在谈到它取代R和Python的潜力时会不由得眉飞色舞。Julia是一种高层次的,极度快速的表达性语言。它比R语言快,比Python更可扩展,且相当简单易学。

“它正在一步步成长。最终,使用Julia,你就能够办到任何用R和Python可以做到的事情,”Butler说。

但是至今为止,年轻人对Julia依然犹豫不前。Julia数据社区还处于早期阶段,要能够和R语言和Python竞争,它还需要添加更多的软件包和工具。

“它还很年轻,但它正在掀起浪潮并且非常有前途,”Driscoll说。

JAVA

Java,以及基于Java的框架,被发现俨然成为了硅谷最大的那些高科技公司的骨骼支架。 “如果你去看Twitter,LinkedIn和Facebook,那么你会发现,Java是它们所有数据工程基础设施的基础语言,”Driscoll说。

Java不能提供R和Python同样质量的可视化,并且它并非统计建模的最佳选择。但是,如果你移动到过去的原型制作并需要建立大型系统,那么Java往往是你的最佳选择。

hadoop 和 Hive

一群基于Java的工具被开发出来以满足数据处理的巨大需求。Hadoop作为首选的基于Java的框架用于批处理数据已经点燃了大家的热情。Hadoop比其他一些处理工具慢,但它出奇的准确,因此被广泛用于后端分析。它和Hive——一个基于查询并且运行在顶部的框架可以很好地结对工作。

Scala

Scala是另一种基于Java的语言,并且和Java相同的是,它正日益成为大规模机器学习,或构建高层次算法的工具。它富有表现力,并且还能够构建健壮的系统。

“Java就像是建造时的钢铁,而Scala则像黏土,因为你之后可以将之放入窑内转变成钢铁,”Driscoll说。

Kafka 和 Storm

那么,当你需要快速实时的分析时又该怎么办呢?Kafka会成为你的好朋友。它大概5年前就已经出现了,但是直到最近才成为流处理的流行框架。

Kafka,诞生于LinkedIn内部,是一个超快速的查询消息系统。Kafka的缺点?好吧,它太快了。在实时操作时会导致自身出错,并且偶尔地会遗漏东西。

“有精度和速度之间有一个权衡,”Driscoll说, “因此,硅谷所有的大型高科技公司都会使用两条管道:Kafka或Storm用于实时处理,然后Hadoop用于批处理系统,此时虽然是缓慢的但超级准确。”

Storm是用Scala编写的另一个框架,它在硅谷中因为流处理而受到了大量的青睐。它被Twitter纳入其中,勿庸置疑的,这样一来,Twitter就能在快速事件处理中得到巨大的裨益。

鼓励奖

MatLab

MatLab一直以来长盛不衰,尽管它要价不菲,但它仍然被广泛使用在一些非常特殊的领域:研究密集型机器学习,信号处理,图像识别,仅举几例。

Octave

Octave和MatLab非常相似,但它是免费的。不过,它在学术性信号处理圈子之外很少见到。

GO

GO是另一个正在掀起浪潮的后起之秀。它由Google开发,从C语言松散地派生,并在构建健壮基础设施上,正在赢得竞争对手,例如Java和Python的份额。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯社交用户体验设计

如何快速有效的发散思维

1023
来自专栏数据的力量

如何快速入门一个陌生知识领域

1477
来自专栏带你撸出一手好代码

一个程序员重写一个旧系统的故事(二)

最近又干了件吃力不讨好的事情,把公司一套旧系统的后台给重写了。有同学心里可能在嘀咕了,又重写系统,你怎么就这么仇视别的同事的工作成果,拿着公司给你的报酬,却做着...

33312
来自专栏WindCoder

广泛vs狭窄的技能树:软件工程技能揭秘

每个软件工程师都有自己掌握的技能。如果你掌握了一到两种技能,而其他的技能却很少,那么技能就是“深而窄”;如果你能在不成为任何领域的专家的情况下做一点事情,那就是...

471
来自专栏顶级程序员

2017年热门编程语言排行榜,你的语言上榜没?

想知道全球最受欢迎的编程语言是什么吗?它们的判断标准又是怎样的呢? ? 我们都知道,C++,MATLAB,Java 一直都受到技术学院的青睐,大多数毕业生都热...

3227
来自专栏顶级程序员

2016年收入最高的5个编程语言,有你的吗?

电子书网站Packt公布了其2016年技术提高报告。它提供的统计数据基于超过 11,000 名 IT 专业人士参与的关于 2016 年收入最高的编程语言的调研...

3194
来自专栏新智元

【预测&盘点】深度学习热潮下,2017 年最受欢迎的编程语言是哪些

【新智元导读】科技网站 HackerEarth 综合业内资深程序员的评论,并根据 Github、HackerNews 等受欢迎的技术网站调查排名,梳理了在 20...

2583
来自专栏CSDN技术头条

D语言架构师Andrei Alexandrescu谈D、Go、Rust取代C/C++

【编者按】本文是D语言联合创始人、架构师Andrei Alexandrescu在问答Quora上关于“在取代C语言的道路上,D、Go和Rust谁的前途最光明?为...

2027
来自专栏PHP技术

编程能力的 4 种境界

原文出处: 外刊IT评论 人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在...

3106
来自专栏腾讯大讲堂的专栏

如何快速有效的发散思维

想方案想的头大,一直在原地打转跳不出来?想了半天提出的方案,被老板说怎么没想到别的某某方案?有时虽然想出不少方案,但是实质在渐行渐远?

3606

扫码关注云+社区