大数据学python还是java

2024-11-30 04:31:48
推荐回答(3个)
回答1:

今天给大家介绍一下关于如何选择大数据的编程语言?

首先比如有一个大数据项目,你知道问题领域(problemdomain),也知道使用什么基础设施,甚至可能已决定使用哪种框架来处理所有这些数据,但是有一个决定迟迟未能做出:

我该选择哪种语言?(或者可能更有针对性的问题是,我该迫使我的所有开发人员和数据科学家非要用哪种语言?这个问题不会推迟太久,迟早要定夺。

如何选择大数据的编程语言

当然,没有什么阻止得了你使用其他机制(比如XSLT转换)来处理大数据工作。但通常来说,如今大数据方面有多种语言可以选择,比如Java、Python、R和Scala。那么,你该选择哪种语言?为何要选择它,或者说何时选择它? 下面我们照着介绍Python和Java这两种语言。

Python

如果你的数据科学家不使用R,他们可能就会彻底了解Python。十多年来,Python在学术界当中一直很流行,尤其是在自然语言处理(NLP)等领域。因而,如果你有一个需要NLP处理的项目,就会面临数量多得让人眼花缭乱的选择,包括经典的NTLK、使用GenSim的主题建模,或者超快、准确的spaCy。同样,说到神经网络,Python同样游刃有余,有Theano和Tensorflow;随后还有面向机器学习的scikit-learn,以及面向数据分析的NumPy和Pandas。

还有Juypter/iPython――这种基于Web的笔记本服务器框架让你可以使用一种可共享的日志格式,将代码、图形以及几乎任何对象混合起来。这一直是Python的杀手级功能之一,不过这年头,这个概念证明大有用途,以至于出现在了奉行读取-读取-输出-循环(REPL)概念的几乎所有语言上,包括Scala和R。

Python往往在大数据处理框架中得到支持,但与此同时,它往往又不是“一等公民”。比如说,Spark中的新功能几乎总是出现在Scala/Java绑定的首位,可能需要用PySpark编写面向那些更新版的几个次要版本(对SparkStreaming/MLLib方面的开发工具而言尤为如此)。

Java

最终,总是少不了Java――这种语言没人爱,被遗弃,归一家只有通过起诉谷歌才有钱可赚时才似乎关心它的公司(注:Oracle)所有,完全不时髦。只有企业界的无人机才使用Java!不过,Java可能很适合你的大数据项目。想一想HadoopMapReduce,它用Java编写。HDFS呢?也用Java来编写。连Storm、Kafka和Spark都可以在JVM上运行(使用Clojure和Scala),这意味着Java是这些项目中的“一等公民”。另外还有像GoogleCloudDataflow(现在是ApacheBeam)这些新技术,直到最近它们还只支持Java。

Java也许不是摇滚明星般备受喜爱的首选语言。但是由于研发人员在竭力理清Node.js应用程序中的一套回调,使用Java让你可以访问一个庞大的生态系统(包括分析器、调试器、监控工具以及确保企业安全和互操作性的库),以及除此之外的更多内容,大多数内容在过去二十年已久经考验(很遗憾,Java今年迎来21岁,我们都老矣)。

炮轰Java的一个主要理由是,非常繁琐冗长,而且缺少交互式开发所需的REPL(R、Python和Scala都有)。我见过10行基于Scala的Spark代码迅速变成用Java编写的变态的200行代码,还有庞大的类型语句,它们占据了屏幕的大部分空间。然而,Java8中新的Lambda支持功能对于改善这种情况大有帮助。Java从来不会像Scala那么紧凑,但是Java8确确实实使得用Java进行开发不那么痛苦。

你该使用哪种语言用于大数据项目?恐怕这还得“视情况而定”。如果跨GPU进行NLP或密集的神经网络处理,Python是很好的选择。如果想要一种加固的、面向生产环境的数据流解决方案,又拥有所有重要的操作工具,Java绝对是出色的选择。

推荐课程:python基础语法全讲解视频(马哥教育2014版)

回答2:

Java

Java与大数据的关系非常密切,目前做大数据开发的程序员很多都是从Java程序员转过去的,Hadoop平台本身就是基于Java开发的。大数据开发在spark平台下,很多程序员更愿意使用scala语言,而scala就是基于Java语言构建的。

Java相比于Python,资历更老,市场需求量大,应用更广泛,是一门非常持久的编程语言,更稳定。作为编程语言的元老,Java编程较Python复杂,Java市场已经十分完善,对于Java开发人员的技能要求更高。

Python

Python本身的特点是高效率的开发和简单的维护,大数据运维领域也在普遍采用Python语言来编写管理脚本;Python语言目前在大数据和人工智能领域有广泛的应用,在数据科学领域,尤其是在深度学习领域,Python是常见的选择。

从学习难易度来看,对于初学者,Python更易入门,Python语法简洁而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。

总体来讲,Java和Python,前者属于行业经典,后者属于后起之秀,对于IT技术人员来说是非常难以抉择的。而且这两种语言发展空间都是非常不错的,可以从事的岗位有很多,根据自己的实际情况来决定就可以了,有基础的人可以学Java,零基础的人建议学习Python,Python比Java更简单。

回答3:

 答案当然是Java,Java与大数据的关系非常密切,目前做大数据开发的程序员很多都是从Java程序员转过去的,Hadoop平台本身就是基于Java开发的。大数据开发在Spark平台下,很多程序员更愿意使用Scala语言,而Scala就是基于Java语言构建的。