【问题标题】:Scala IDE for data science applications (like RStudio / Spyder / Rodeo)用于数据科学应用程序的 Scala IDE(如 RStudio / Spyder / Rodeo)
【发布时间】:2016-12-06 11:47:58
【问题描述】:
随着 Spark 的兴起,Scala 作为数据科学应用程序的首选编程语言获得了巨大的发展势头。
为了提高处理数据科学应用程序的效率,我们为
发布了
专门的 IDE
Scala 有类似的东西吗?
【问题讨论】:
标签:
scala
ide
data-science
【解决方案1】:
不幸的是,目前似乎没有任何专用于 Scala 的数据科学 IDE。我认为这些将是您的最佳选择:
这基本上是一个带有输出窗口的文本编辑器,可以根据需要随时更新。 Eclipse 也有类似的东西,我只是更喜欢 IntelliJ。
优点:
- 以 IntelliJ 出色的代码完成、错误检查和 sbt/maven 集成为后盾。
- 您可以在与实际开发系统相同的项目设置中进行原型制作(如果有的话)。
缺点:
- 我不知道有任何缓存/选择性评估,因此每次您需要答案时都会评估整个工作表,如果您有一些需要很长时间才能完成的操作,您可能不希望这样做。
- 没有工作区变量窗口或绘图集成。
Jupyter Notebook 是 iPython notebook 的泛化版本,现在支持dozens of interpreted languages(一直在添加新内核)。
优点:
-
Scala 和 Spark Scala 内核相当容易安装,都能够添加 maven/sbt 依赖项和 JAR。
- 笔记本中的单元可以单独运行(例如,允许您训练一个模型并多次使用它)。
- 单元格支持 Markdown(使用 LaTeX!),可以自行呈现 (a github example),让您可以将笔记本用作报告/演示。
- 笔记本由笔记本服务器提供支持,因此您可以轻松地将功能更强大的计算机用作笔记本服务器,然后从其他位置与笔记本进行交互。
- 某些内核具有自动完成功能。
- 看起来有一些情节整合 (example),但还没有完全完善。
缺点:
- 并非所有内核都是完美的,有些内核存在错误或功能有限。
- 没有工作区变量窗口。
- 您确实需要注意单元格的排序,否则会导致很多混乱。
对于我所做的大多数数据科学工作,我使用 Jupyter,但它远非完美。为了让 Scala 真正成为一种数据科学语言,它确实需要更多的数据科学库(scikit-learn 在这里遥遥领先)并且它需要一个可靠的绘图库(有一些选项,但我没有看到两者都使用惯用的 Scala 并且能够在没有服务器的情况下运行)。我认为一旦有了这两个元素,它就会变得更受欢迎,希望有人能做出一个不错的 RStudio 式 IDE。
【解决方案3】:
我建议您查看 Scala IDE for Eclipse。但我认为,这真的取决于你个人的选择,你是否愿意编写代码。对于逐个代码测试,我仍然会使用 jupyter notebook