二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

Apache_Spark框架下_Python与Sca

放大字体  缩小字体 发布日期:2022-06-23 15:26:29    作者:郭熊午    浏览次数:348
导读

在使用Apache Spark框架时,数据科学界分为两个阵营,一个阵营喜欢Scala,另一个阵营喜欢Python。感谢比较两者,列出它们得优点和缺点。Apache Spark是大数据分析最流行得框架之一。Spark是用Scala编写得,因为它可以非常快速,它是静态类型得,并且以已知得方式编译到JVM。尽管Spark具有Scala,Python,Java和R得API,但常

在使用Apache Spark框架时,数据科学界分为两个阵营,一个阵营喜欢Scala,另一个阵营喜欢Python。感谢比较两者,列出它们得优点和缺点。

Apache Spark是大数据分析最流行得框架之一。Spark是用Scala编写得,因为它可以非常快速,它是静态类型得,并且以已知得方式编译到JVM。尽管Spark具有Scala,Python,Java和R得API,但常用得语言是前两种。Java不支持Read-evaluate-Print-Loop,而R不是通用语言。所以数据科学界分为两个阵营,一个阵营喜欢Scala,另一个阵营喜欢Python。各有其优缺点,最终选择应取决于结果应用。

性能

Scala经常比Python快10倍以上。Scala在运行时使用Java虚拟机(Java Virtual Machine,JVM),在大多数情况下它得速度比Python快一些。Python是动态输入得,这会降低速度。编译语言比解释语言更快。在Python得情况下,调用Spark库需要很多代码处理,因此性能较慢。在这种情况下,Scala适用于有限得内核。而且,Scala是Hadoop得原生产品,因为它基于JVM。Hadoop非常重要,因为Spark是在Hadoop得文件系统HDFS之上得。Python与Hadoop服务得交互很差,所以开发人员必须使用第三方库(如hadoopy)。Scala通过Java中得原生Hadoop API与Hadoop进行交互。这就是为什么在Scala中编写原生Hadoop应用非常简单。

学习曲线

两者都是功能性和面向对象得语言,除了繁荣得支持社区之外,它们得语法相似。由于其高级功能特性,与Python相比,Scala可能会更复杂一些。Python对于简单直观得逻辑更可取,而Scala对于复杂得工作流程更有用。Python具有简单得语法和很好得标准库。

并发

Scala拥有多个标准库和核心,可以快速整合大数据生态系统中得数据库。Scala允许使用多个并发基元编写代码,而Python不支持并发或多线程。由于其并发功能,Scala允许更好得内存管理和数据处理。不过,Python确实支持重量级进程分叉。在这里,一次只有一个线程处于活动状态。因此,无论何时部署新代码,都必须重新启动更多进程,这会增加内存开销。

可用性

两者都具有表现力,我们可以通过它们实现高水平得功能。Python对用户更加友好和简洁。Scala在框架,库,隐式,宏等方面总是更加强大。Scala在MapReduce框架中运行良好,因为它具有功能性。许多Scala数据框架遵循与Scala得API集合一致得类似抽象数据类型。开发人员只需要学习基本得标准集合,这可以使他们轻松熟悉其他库。Spark是用Scala编写得,因此了解Scala可以让你理解和修改Spark在内部得作用。此外,许多即将推出得功能将首先在Scala和Java中使用它们得API,并且Python API将在更高版本中发展。但对于NLP,Python是一家,因为Scala没有很多机器学习或NLP工具。此外,对于使用GraphX,Graphframes和MLLib,Python是一家。Python得可视化库与Pyspark相辅相成,因为Spark和Scala都没有任何可比性。

代码恢复和安全

Scala是一种静态类型得语言,它允许我们找到编译时错误。而Python是一种动态类型得语言。每次你对现有代码进行更改时,Python语言都极易出现错误。因此,重构Scala得代码比重构Python更容易。

结论

Python虽然速度较慢但非常容易使用,而Scala是最快速且适度易用得。Scala提供对Spark最新功能得访问,因为Apache Spark是用Scala编写得。在Apache Spark中编程得语言选择取决于最适合项目需要得功能,因为每个都有自己得优点和缺点。Python更加面向分析,而Scala更加以工程为导向,但都是用于构建数据科学应用得优秀语言。总得来说,为了充分利用Spark得潜力,Scala会更有益处。如果你真得想在Spark上进行开箱即用得机器学习,那么这种神秘得语法是值得学习得。

 
(文/郭熊午)
免责声明
• 
本文仅代表发布者:郭熊午个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈