【发布时间】:2015-10-06 22:07:05
【问题描述】:
我听到一个常见的主题,我应该只在 Spark (1.5.1) 上的 Scala 中进行认真的编程。真正的超级用户使用 Scala。据说 Python 非常适合分析,但最终代码应写入 Scala 以完成。我听到的原因有很多:
- Spark 是用 Scala 编写的,因此总是比基于它的任何其他语言实现都要快。
- 与 Python API 相比,Spark 版本总是更倾向于为 Scala API 提供更多可见和启用的功能。
上面的说法有道理吗?我有点怀疑。
谢谢
【问题讨论】:
-
我不明白你的问题。很明显,在 Spark 上唯一值得考虑的语言是 Clojure。这不是 Haskell,但我们都必须妥协,不是吗?更不用说除了严肃之外的任何类型的编程都应该被禁止:) 说真的,尽管我投票结束这个问题。 1. 脱离 JVM 需要一些开销。这是否意味着您的程序会变慢?也许。这取决于上下文。 2. 是的,新特性首先出现在 Scala API 中。由于内部限制,有些可能永远不会在 Python 中引入。除此之外,这里没有好的答案。
-
我不明白你为什么要关闭它。我正在询问 Scala 获得比 PySpark 更多功能的观点。是否有证据表明 Spark 中的 Scala API 有此政策?
-
证据很简单——Spark源码。这绝对不是一个策略,但 PySpark API 的每个部分都需要围绕 Scala API 的包装器或在现有 Python API 之上的单独实现。关于内部限制。这是一个例子:stackoverflow.com/q/31684842/1560062。为什么投票关闭?因为在我看来,这是接近 Scala vs Python 完全没有意义的讨论。
标签: python scala apache-spark pyspark