在开发 Spark 应用程序时使用多种语言 [关闭]
Posted
技术标签:
【中文标题】在开发 Spark 应用程序时使用多种语言 [关闭]【英文标题】:Using Multiple Languages while developing a Spark application [closed] 【发布时间】:2016-06-14 19:36:05 【问题描述】:我正在和另一个人一起做一个项目。我的项目部分涉及使用 Spark 的机器学习进行分析,而我的队友正在使用 Spark Streaming 将数据从源传输到程序并输出到接口。
我打算使用 Scala,因为它对 Spark 的支持最好。但是,我的队友对 Scala 没有任何经验,可能更喜欢使用 Python。
鉴于我们的程序部分正在做两件不同的事情,让他的 Python 脚本调用我的 Scala 可执行文件对我们来说是个好主意吗?或者以后使用不同的语言会导致复杂性?
【问题讨论】:
PySpark 和 Spark 是两个并行运行的项目。如果您刚开始,请使用 Scala,API 的更新更加频繁,并且您总是首先获得新功能。学习 Scala 就像学习任何其他语言一样,你会从中受益。 我投票结束这个问题主要是基于意见。 我不认为这个问题主要是基于意见的。我在问一个定义明确的问题——“以后使用不同的语言会引起并发症吗?” - 这可以通过为什么或为什么不使用两种语言方法可能适合或不适合我的场景的示例来回答。 【参考方案1】:经验丰富的开发人员将能够学习一门新语言并很快提高工作效率。
我只会考虑同时使用这两种语言,如果:
-
截止日期太紧,开发人员无法跟上进度,
模块之间的集成非常有限(您确信不会改变)并且
有明确的部署策略。
我建议先进行小规模测试,以确认您的部署和集成计划是否可行。
【讨论】:
【参考方案2】:我是 Python 迷。 当我开始使用 Spark 时,我对继续使用 Python 或切换到 Scala 或 Java 有点困惑。
但是在尝试了 Python 开发一些基本的应用程序之后,我开始感到无聊,因为我们使用的 Python 不再是普通的 Python,难以调试可能会导致隐形问题。
所以我改用 Scala。这是为什么:
-
这比您想象的要容易。
您可以学习 Spark 代码库并了解 Spark 的工作原理。
它很棒,比带有 lambda 函数的 Java 好得多。
观看此videos
【讨论】:
lambda 函数自 java 8 起可用以上是关于在开发 Spark 应用程序时使用多种语言 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章