大数据开发需要学习哪些编程语言

大数据开发需要学什么编程语言?随着大数据的持续升温,越来越多的人投身于大数据的浪潮之中,不少完全没基础的小伙伴,难免会有这样的疑问,从事大数据需要学习什么编程语言呢?其实这个问题没有固定的答案,像Python、R、Java和Scala都是很好的选择,大家可以根据自身的实际情况进行选择

1、Python

一般的数据科学家都会选择Python作为大数据语言的首选。一直以来,Python流行于学术界,在自然语言处理(NLP)等领域尤其如此。所以,当有一个需要NLP处理的项目时,就会面临数量多得让人眼花缭乱的选择,包括经典的NTLK、使用GenSim的主题建模,或者超快、准确的spaCy。不仅如此,在神经网络领域Python同样适用。在大数据处理框架中,Python通常能够得到支持。

Python与R相反,它是一种传统的面向对象语言,所以大多数开发人员用起来会相当得心应手。但是初次接触R或Scala会让人心生畏惧。一个小问题就是你的代码中需要留出正确的空白处。这将人员分成两大阵营,一派觉得“这非常有助于确保可读性”,另一派则认为,我们应该不需要就因为一行代码有个字符不在适当的位置,就要迫使解释器让程序运行起来。

2、R

R又叫做“统计人员为统计人员开发的一种语言”。大家如果需要计算深奥的统计模型,可能会在CRAN上找到它。说到用于分析和标绘,没有什么比得过ggplot2。而如果你想利用比你机器提供的功能还强大的功能,那可以使用SparkR绑定,在R上运行Spark。

然而,如果你不是数据科学家,之前也没有用过Matlab、SAS或OCTAVE,可能需要一番调整,才能使用R来高效地处理。即使R很适合数据分析的工作,但它并不就擅长一般用途。你可以用R构建模型,但是你需要考虑将模型转换成Scala或Python,才能用于生产环境。

3、Scala

不得不说,因其类型系统Scala几乎是最轻松的语言。Scala在JVM上运行,基本上成功地结合了,函数范式和面向对象范式。目前,它在金融界和需要处理海量数据的公司企业中,取得了巨大进展。常常采用一种大规模分布式方式来处理。另外它还是驱动Spark和Kafka的一种语言。

由于Scala在JVM里面运行,它可以立即随意访问Java生态系统,不过它也有一系列广泛的“原生”库,用于处理大规模数据(尤其是Twitter的Algebird和Summingbird)。它还包括一个使用非常方便的REPL,用于交互式开发和分析,就像使用Python和R那样。然而Scala也有缺点,它的编译器运行起来有点慢。不过,它有REPL、支持大数据,还有采用Jupyter和Zeppelin这一形式的基于Web的笔记本框架。考虑到以上的优势,总体来讲,Scala还是利大于弊的。

4、Java

Java很适合大数据的项目。比如HadoopMapReduce,它用Java编写。而HDFS也是用Java来编写的。连Storm、Kafka和Spark都可以在JVM上运行,这意味着Java是这些项目中的首选编程语言。另外还有像Google Cloud Dataflow这些新技术,之前一直还只支持Java。研发人员在竭力理清Node.js应用程序中的一套回调,使用Java可以访问一个庞大的生态系统,以及除此之外的更多内容。

Java唯一的缺点是非常繁琐冗长,而且缺少交互式开发所需的REPL。这一点来说,R、Python和Scala都有。不过Java 8中新的Lambda支持功能,对于改善这种情况会有帮助。Java从来不会像Scala那么紧凑,但是Java 8确确实实使得用Java进行开发不那么痛苦。

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java