使用Scala的数据科学工具


15

我知道Spark已与Scala完全集成。它的用例专门用于大型数据集。其他哪些工具具有良好的Scala支持?Scala是否最适合大型数据集?还是也适合较小的数据集?


2
您是否还想了解机器学习工具包,例如FACTORIE?
埃里克·卡普伦2014年

听起来与我的问题有关,请随时分享更多。
sheldonkreger 2014年

Answers:


11

回复:数据大小

简短的答案

Scala适用于小型和大型数据,但是其创建和开发是由需要可扩展的东西驱动的。 Scala是“可扩展语言”的缩写

长答案

Scala是一种在jvm上运行的功能性编程语言。其中的“功能”部分是语言上的根本差异,使您对编程有不同的看法。如果您喜欢这种思维方式,它可以让您快速处理小数据。无论您是否喜欢,功能语言从根本上都更易于大规模扩展。jvm片段也很重要,因为jvm基本上无处不在,因此Scala代码基本上可以在任何地方运行。(请注意,jvm上还有很多其他语言,还有很多其他功能性编程语言,而且Scala以外的语言也会出现在这两个列表中。)

这篇演讲很好地概述了Scala背后的动机。

回复:其他具有良好Scala支持的工具:

正如您所提到的,Spark(在迭代算法上比同等产品更好的可分发批处理)是一个很大的例子。火花谈到它的库Mllib机器学习和GraphX的图表。如Erik Allik和Tris Nefzger所述,AkkaFactorie存在。还有Play

通常,我无法确定您是否在挖掘特定的用例(如果是,则将其作为问题的一部分),或者只想对大数据工具进行调查并碰巧了解Scala并想要从那里开始。



4

通过聆听Scala的创建者Martin Odersky的演讲,它特别适合通过结合面向对象和轻巧语法的功能编程构造来构建高度可扩展的系统。它对小型系统的开发和快速原型设计也很有用,因为它比其他一些语言花费更少的代码行,并且具有用于快速反馈的交互模式。一个著名的Scala框架是Akka,它使用并发计算的参与者模型。Odersky的许多演讲都在YouTube上发布,并且在wiki.scala-lang.org上有使用Scala实现的工具列表。

隐含的一点是,用Scala编写的工具和框架固有地具有Scala集成,并且通常具有Scala API。然后,可以添加其他API以支持以Java开头的其他语言,因为Scala已经集成,并且实际上严重依赖Java。如果未使用Scala编写工具或框架,则它不太可能为Scala提供任何支持。这就是为什么在回答您的问题时,我指出了用Scala和Spark编写的工具和框架是一个示例。但是,Scala目前在市场中占有很小的份额,但其采用率正在增长,Spark的高增长率将增强这一点。我使用Scala的原因是因为Spark的Scala API比Java和Python API丰富。

我一般首选Scala的主要原因是,它比Java具有更高的表达力,因为它允许并促进将函数用作对象和值,同时保持面向对象的模块化,这使得开发复杂而正确的程序的代码比Java少得多。我之所以喜欢它,是因为其用途广泛,清晰明了且文档出色。


1
总的来说,这是有关Scala的重要信息,但是我正在寻找有关具有Scala集成的特定数据科学工具或框架的信息,以及为什么Scala是这些工具使用的好语言。
sheldonkreger 2014年

0

Scala适用于大型和小型数据科学应用程序。如果您有兴趣尝试与Apache Spark很好集成的机器学习库,请考虑使用DynaML。就提供的模型数量而言,它仍处于起步阶段,但它通过广泛而灵活的机器学习API来弥补。

要看一些示例用例,请考虑(更多来源)

  1. 系统识别-Abott电厂

免责声明:我是DynaML的作者


如果这是您的项目,请注意您的隶属关系。
肖恩·欧文
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.