scala学习笔记(1)——为什么要学习scala

      自从大数据、人工智能、区块链等概念一炒再炒,python无疑成为了最为热门的语言,常年盘踞编程语言前三,与此同时,活跃的社区、便于入门的代码也使得python成为进入人工智能、大数据领域的最佳语言选择,但是笔者在大数据领域的一个最深切感受却是:如果要在大数据、机器学习、深度学习等领域更进一步,有必要去学习一下scala编程,原因如下:

1、scala与java可以无缝链接:尽管笔者不是java出身,但在互联网领域java无疑是最具影响力的语言之一,良好的社区,规范优美的代码规则,都使得java成为近年来互联网应用最为广泛的语言,而scala与java几乎可以称作无缝链接,通过简单的import就可以调用java中各式各样的类和方法,同时,scala完成的算法包也是以jar包的形式出现,同样的语言实现都是经过JVM来实现,这使得scala相比于python就有先天的优势,当你在使用python时,写了一大堆mapper代码就是为了使得训练数据和测试数据能够得到同样处理,以便生成的pmml文件可以在java开发工程师手里上线时,却碰到自定义函数不能被识别的囧境时,你就会发现python仍然是python,pkl文件仍然是pkl文件,但java就在那里,不悲不喜,这个问题对scala用户则是完全不存在的。

2、与spark的天然血缘,众所周知,spark的开发代码就是scala语言,那么用开发语言来运行本身的程序,简直不要太舒服,尽管为了让spark显得更亲民一些,开发了pyspark等API,但这种API仍然像是隔着军大衣在拥抱,pyspark没有GraphX的集成,python跟spark本身的运行模式就是相抵触的,pandas版本的DataFrame与spark版本的DataFrame名字一样,但用法确实完全不一样,体会过几十万数据进行toPandas操作时要死机的崩溃时,就会明白,这也不是一个很有意思的事情,因为spark本身就代表着分布,转成pandas以后就是赤裸裸的本地,哪来的分布式思想。但scala就不同了,天生的分布式理念,从spark对于scala而言,就有点类似于pandas与sklearn对于python而言,只不过一个是分布式,一个是单机版,掌握了scala就能把spark用的风生水起,包括spark用于实时计算的streaming都可以用scala进行一站式操作,说到实时计算,即使是现在火热的Flink也一样可以用scala操作,所以这门语言对于大数据的离线数据操作和实时数据操作都是非常方便的。

3、相比于python,scala的编写更为规范,尤其是那优美的大括号,当你写上几个以后,你就会爱上这种格式,暂时想到的就是这些。

笔者作为一个scala初学者,将会写一个关于scala学习的系列博客,记录自己的学习过程,对自己也有一个督促。

猜你喜欢

转载自blog.csdn.net/lorrylee1346/article/details/82765249