前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scala更适合用于大数据处理和机器学习

Scala更适合用于大数据处理和机器学习

作者头像
加米谷大数据
发布2018-07-25 17:37:49
8250
发布2018-07-25 17:37:49
举报

Scala是一门现代的多范式编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala允许用户使用命令和函数范式编写代码。Scala运行在Java虚拟机之上,可以直接调用Java类库。对于新手来说,Scala相对比较复杂,其看起来灵活的语法并不容易掌握,但是对于熟悉Scala的用户来说,Scala是一把利器,它提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构。近日,Spotify的软件工程师Neville Li发表了一篇题为《数据工程师应该学习Scala的三个理由》的文章,他认为现在的编程语言种类非常多,每种语言都各有优缺点,并且它们的适用的场景也不同,比如Scala就非常适合用于数据处理和机器学习。

在大数据和机器学习领域,很多开发者都有Python/R/Matlab语言的背景,相比与Java或者C++,Scala的语法更容易掌握。从以往的经验来看,只要掌握基本的集合API以及lambda,一个没有经验的新员工就可以快速上手处理数据。像Breeze、ScalaLab和BIDMach这样的类库都通过操作符重写模仿了一些流行工具的语法以及其它的一些语法糖,简单并且容易使用。另外,Scala的性能比传统的Python或者R语言更好。

由于Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序,所以Scala可以和大数据相关的基于JVM的系统很好的集成,比如基于JVM类库的框架Scalding(Cascading)、Summingbird(Scalding和Storm)、Scrunch(Crunch)、Flink(Java编写并有Scala的API),本身使用Scale开发的系统Spark、Kafka。另外,很多数据存储解决方案都支持JVM语言,比如Cassandra、HBase、Voldemort和Datomic。

函数编程范式更适合用于Map/Reduce和大数据模型,它摒弃了数据与状态的计算模型,着眼于函数本身,而非执行的过程的数据和状态的处理。函数范式逻辑清晰、简单,非常适合用于处理基于不变数据的批量处理工作,这些工作基本都是通过map和reduce操作转换数据后,生成新的数据副本,然后再进行处理。而大多数的Scala数据框架都能够把Scala数据集合API和抽象数据类型相统一,比如Scalding中的TypedPipe与Spark中的RDD都有相同的方法,包括map、flatMap、filter、reduce、fold和groupBy,这样使用Scala来处理就更为方便。开发者只需要学习标准集合就可以迅速上手其它工具包。另外,很多的类库都参考了范畴论中的一些设计,它们通过使用semigroup、monoid、group标识来保证分布式操作的正确性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档