9个最佳的大数据处理编程语言(转载自物联网智库)

大数据的浪潮仍在继续。它渗透到了几乎全部的行业,信息像洪水同样地席卷企业,使得软件愈加庞然大物,好比Excel看上去就变得愈来愈笨拙。数据处理再也不无足轻重,而且对精密分析和强大又实时处理的须要变得史无前例的巨大。算法

刚开始学习数据科学的人都会面对同一个问题:编程

不知道该先学习哪一种编程语言。后端

不只仅是编程语言,像Tableau,SPSS等软件系统也是一样的状况。有愈来愈多的工具和编程语言,很难知道该选择哪种。架构

事实是,你的时间有限。学习一门新的编程语言至关于一项巨大的投资,所以在选择语言时须要有战略性。框架

很明显,一些语言会给你的投资带来很高的回报(付出的时间和金钱投资)。然而其余语言多是你每一年只用几回的纯粹辅助工具。机器学习

我给你的建议就是:先学习R语言编程语言

专一于一种语言工具

在说明为何你应该学习R语言以前,我想强调的是,在开始学习数据科学时,你应该学习一种语言。oop

有些人问我是否应该学习在学R语言的同时学习Python。个人答案基本上是否认的,除非你须要使用一种以上的语言,不然你应该选择一种语言进行学习。性能

专一于一种编程语言的缘由是,你须要更多地关注过程和技术,而不是语法。你须要掌握如何经过数据科学工具来分析数据,以及如何解决问题。事实证实,R语言是最佳的选择。

学习R语言

我建议你将R语言做为你的第一个“数据科学编程语言”。虽然也有例外,好比特定的项目须要。由于R语言正在成为数据科学的“通用语言”。

这并非说R语言是惟一的语言,也不是说它是每一个工做的最佳工具。然而,它是使用最普遍的,并且愈来愈受欢迎。

O' reilly media在过去几年中进行了一系列数据科学调查,分析了数据科学趋势。在2016年的调查报告中,R语言是最经常使用的编程语言(若是排除SQL的话,在本文中它不能称为编程语言)。57%的调查人群使用R语言(使用Python的比例为54%)。

另外一个常见的语言排名系统是Redmonk编程语言排名,它由GitHub(代码行)和Stack Overflow(标签数)的流行指数派生而来。截至2016年11月,R语言在全部编程语言中排名第13。此外,R语言多年来一直呈持续上升趋势:

此外还有TIOBE指数(按搜索引擎搜索次数对编程语言进行排名)。在TIOBE指数上,R语言十年来呈现出稳定上升趋势。

使用R语言的公司

在招聘数据科学家的几家顶级公司中,R语言使用程度很是高。在我认为现代经济中最优秀的两家公司——Google和Facebook 都有使用R语言数据科学家。

除了像Google,Facebook和微软这样的科技巨头,R语言在美国银行,福特,TechCrunch,Uber和Trulia等众多公司都有普遍的应用。

R语言在学术界很受欢迎

R语言不只仅是一个行业工具。它在学术科学家和研究人员中也很是受欢迎,最近著名《天然》杂志上发表的R语言概况也证明了这一点。

R语言在学术界的备受欢迎,由于它创造了供应行业的人才库。

换句话说,若是最优秀、最聪明的人群在大学学习了R语言,这将加大R语言在行业中的重要性。当学者、博士和研究人员离开学术界从事商业活动时,他们又将产生对R语言人才的需求。

此外,随着数据科学的成熟,商业届的数据科学家将须要与学术届的科学家进行更多的沟通。咱们须要借鉴技术和交流观点。随着世界转变为数据流时,学术科学与面向商业的数据科学之间的界线会变得模糊。

经过R语言学习“数据科学的技能”是最简单的

然而,R语言的普及性并非学习R语言的惟一缘由。

在选择语言时,你须要一种在这些领域都具备重要功能的语言。同时你须要执行这些任务的工具,以及在你所选语言中来学习这些技能的资源。

如上所述,你更多地须要关注流程和技术,而不是语法。

你须要学习如何解决问题。你须要学习如何在数据中找到真知灼见。

为此,你须要掌握数据科学的3个核心技能领域:数据处理,数据可视化和机器学习。在R语言中掌握这些技能将比任何其余语言都容易。

数据处理

通常来讲,数据科学中80%的工做都是数据处理。一般状况下,你须要花费大量时间来整理你的数据。R语言中有一些很棒的数据管理工具。

R语言中的dplyr包使数据处理变得容易,这能够大大简化数据处理的工做流程。

数据可视化

ggplot2是最佳的数据可视化工具之一。ggplot2的好处是,在学习语法的同时,还学习如何思考数据可视化。

全部的统计可视化都有很深层的结构。存在构建数据可视化的高度结构化框架,ggplot2基于该框架。

此外,当将ggplot2和dplyr组合在一块儿时,从数据中得出相关看法几乎绝不费力。

机器学习

最后,还有机器学习。虽然我认为大多数数据科学初学者不该该急于学习机器学习(首先掌握数据探索更为重要),机器学习是一项重要的技能。当数据探索再也不带来洞察力时,你则须要更强大的工具。

以后再学习更多的语言和工具

最终你会想学习更多的编程语言。就像工具箱中没有一个最好的工具同样,没有一种编程语言可以完美的解决你全部的数据问题。

如下是在学习R语言以后,你能够考虑学习的语言:

Rython

若是说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的份额。

相关文章
相关标签/搜索