网易首页 > 网易号 > 正文 申请入驻

数据分析工具选Python还是Scala?我们帮你解决选择困难症

0
分享至

做数据分析时,如果需要编程,会面临一个数据分析工具选择的问题:选择Scala,还是Python?

一般给的建议是小数据用Python,大数据用Scala,当然是基于Spark平台的Scala,因为JVM的加持,Scala的性能相较于Python快10倍,Scala是函数式编程语言,主打简洁、性能;python主打过程式,易用、胶水,生态完整,是AI时代的御用语言,而且可以使用的数据处理基础库比较多,最流行的当然是Pandas。

先说下历史, 图灵,不但完成了二战密码破解任务,而且是计算机理论的奠基者,解决世纪数学难题的同时完成了那篇著名的论文《On Computable Numbers with an Application to the Entscheidungs-problem》,论文中定义的图灵机中仅仅一条纸带,一个读写头,就可以完成所有计算问题,现在的所有计算机都可以抽象为图灵机,图灵机也是所有过程式编程语言的基础理论依据,因为图灵机更接近现实世界,更容易实现,因此在一段时间内,全部都是过程式编程语言。

但是,一场天才之间的相遇,丘齐当上了图灵的老师,一场思想的碰撞,邱齐的 lambda算子(λ)横空出世,只用最简洁的几条公理便建立起了与图灵机完全等价的计算模型,掀开了函数编程语言的时代,先后出现了Lisp 、 Scheme 、 Haskell这些以抽象性和简洁美为主旨的语言。

函数式编程简洁但是不简单,学习曲线陡峭且比较难于进行性能优化,因此Scala兼采两家之长,支持函数式,构建于Java生态,复用了目前Java生态的所有成果,并且保证了程序执行速度,做到了“高效、广谱”,既可以面向对象,过程式编程,降低程序优化难度,又可以使用函数式编程,保证程序的简洁性。Spark 平台1.0版的核心代码只有4万行,Scala语言的简洁和丰富的表达力起到了关键作用。

该如何选择?

对我们来说,在多个语言间选择数据分析工具一般要考虑3个因素:

▶ 生态:是否有成熟的函数库,能否通过已经掌握的编程语言快速过渡?

▶ 性能:性能如何,在有些情况下是关键决策项?

▶ 简洁:语言是否简洁,能否能够快速验证我们的想法,实现“所见即所得”

01、生态

我们先分析下第一点,从下图我们可以看到,使用Scala可以直接使用DataFrame,而DataFrame的功能和Pandas完全相同,并进一步增加了分布式的能力,能应对海量数据的处理,所以Scala生态有特别成熟的函数库。

既然Scala又好又快为什么不直接用Scala做数据分析,还要用Python?

前面提到,函数式编程语言简洁但是不简单,学习曲线陡峭,既然Scala定位是函数式编程语言,因此也难逃此定律。使用Python实现数据统计,程序容易开发,容易迁移,可快速验证想法。

大部分数据分析师都掌握Python,并且基本都会使用Pandas,因此实际应用中Python是首选。而基于Scala语言的Spark平台也有和Pandas对应的基础框架DataFrame,且Pandas和DataFrame之间的函数功能相似度极高,因此我们也可以基于Python代码完成对Scala语言的一一比对式学习,让学习找到着力点,所以,如果你已经掌握Python,此时再学Scala是水到渠成的事。

02、性能

作为一门编程语言,最后都要落地执行,性能是至关重要的一环,性能好意味着时间短,做任何事,时间永远是最大的成本。

Python有优势,但是劣势也相当明显。除了Python语言本身特点导致其执行速度比Scala本身慢2到3倍外,不同语言开发的应用程序间的IO也往往是性能的关键瓶颈点。从下图可以看出,从Scala到Python处理过程需要经历两次IO过程,在数据量较小的情况下,此过程可以顺畅执行,但如果数据量较大,那肯定是瓶颈所在。

这个问题怎么解决?

目前有一些折中的方法,例如使用Arrow,基于流水线,完成高效的IO过程,如果你不想折中,我建议使用Scala,Scala语言既拥有面向对象的能力,又具有函数式编程的简洁和高效,并且和Java语言可天然的“零开销”集成。

03、简洁

性能上Scala有天然优势,那么从代码的简洁度上孰优孰劣,能否像Python一样快速验证我们的想法?我们从以下几个从简单到复杂的场景比对下”区别“。

▶ 第一个场景:字符处理

从最直观的感受上,这个字符处理场景 Scala略胜一筹。

▶ 第二个场景:自定义函数

当然,第一个场景只能是演示过程中用的最直观的例子,可能在实际生产中的应用不多,那对于一些更专业的技术人员,自定义函数是日常开发中经常要用到的,我们再看看在这个场景谁更简洁:

从简洁性上来说,此役平分秋色。

▶ 第三个场景:Map/Reduce过程

Map/Reduce过程是现今所有分布式大数据处理技术的理论基石,而其中最关键的一环是对于键值对(Key-Value Pairs)的处理,Scala和python如何处理?

此处也是半斤对八两。

▶ 第四个场景:数据挖掘算法

做开发不只有简单场景,我们这里对比下在数据挖掘算法中两种语言的表现,二项式逻辑回归(Binomial logistic regression)给您奉上。

可以说是互为镜像,孪生兄弟。

总结

从过程式到函数式,编程语言经历了大半个世纪的发展,各个分支都已经趋近成熟,近15年出现的大数据技术的出现让各种编程语言有的老树新花,有的找到了新战场。

函数式编程更适合用在大数据处理技术的场景中,而Scala语言结合过程式的性能,函数式的简洁,极其强大的生态,以及背后巨大资本力量的推动,无疑是我们学习大数据处理技术的首选语言,如果你是Python开发者,或者Java开发者,都可以轻松成为Scala开发者,快速获得其性能、简洁和生态的优势。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
生阳气的3种食物,入伏前后多吃,把脾胃养好了,阳气也补足了

生阳气的3种食物,入伏前后多吃,把脾胃养好了,阳气也补足了

阿龙美食记
2026-07-01 13:22:59
特斯拉深夜推送FSD V14,400万车主更新,新增哪些实用驾驶功能?

特斯拉深夜推送FSD V14,400万车主更新,新增哪些实用驾驶功能?

侃故事的阿庆
2026-07-01 16:10:46
C罗率葡萄牙纪念若塔逝世一周年

C罗率葡萄牙纪念若塔逝世一周年

体坛观察猿
2026-07-03 00:44:21
沈腾携妻儿现身阿那亚,王琦体型富态,儿子身高惊人

沈腾携妻儿现身阿那亚,王琦体型富态,儿子身高惊人

空樽对月花独瘦
2026-07-03 05:52:40
“韩雅平,别去清华学医!”河南贫困女孩尘埃落定,网友又爱又恨

“韩雅平,别去清华学医!”河南贫困女孩尘埃落定,网友又爱又恨

熙熙说教
2026-07-02 19:31:08
台媒曝75岁郭台铭被50岁中女勾引!女方离异带娃 颜值不及正室

台媒曝75岁郭台铭被50岁中女勾引!女方离异带娃 颜值不及正室

天天热点见闻
2026-06-29 18:56:43
队报:塞内加尔出局,球队主帅蒂奥遭炮轰

队报:塞内加尔出局,球队主帅蒂奥遭炮轰

懂球帝
2026-07-02 20:07:09
绿军送布朗至76人换乔治,球迷:比东契奇交易更烂

绿军送布朗至76人换乔治,球迷:比东契奇交易更烂

快乐加载中21
2026-07-03 01:41:16
163小个子的逆袭!这17款亚马逊泳衣太绝了

163小个子的逆袭!这17款亚马逊泳衣太绝了

自愈小日子
2026-07-02 01:26:50
妻子在洗澡时,好兄弟给她发来消息:他走了吗?我回复:赶紧来吧

妻子在洗澡时,好兄弟给她发来消息:他走了吗?我回复:赶紧来吧

千秋文化
2026-07-02 19:55:15
谁是国家队最大遗珠?曾凡博程帅澎领衔9人无缘战日本12人名单

谁是国家队最大遗珠?曾凡博程帅澎领衔9人无缘战日本12人名单

狼叔评论
2026-07-02 21:54:08
“伪装”成小国的大国:在欧洲面积仅次于俄罗斯,为何不愿承认?

“伪装”成小国的大国:在欧洲面积仅次于俄罗斯,为何不愿承认?

抽象派大师
2026-07-01 01:36:39
保送四强?这支阿根廷从头到脚写着卫冕二字!梅西或打破卫冕魔咒

保送四强?这支阿根廷从头到脚写着卫冕二字!梅西或打破卫冕魔咒

打小我就醜
2026-07-02 08:13:22
穿白无垢打网球?大坂直美温网作妖记:成绩烂了只能靠衣服蹭热度

穿白无垢打网球?大坂直美温网作妖记:成绩烂了只能靠衣服蹭热度

白露文娱志
2026-06-30 16:27:39
某些人的手,再伸长一点,就能管到别人床上了!

某些人的手,再伸长一点,就能管到别人床上了!

走读新生
2026-07-02 23:15:30
他公开侮辱普京,四天后,他就在波兰的住所被暗杀

他公开侮辱普京,四天后,他就在波兰的住所被暗杀

怪味历史连连看
2026-07-02 16:35:09
人形机器人,最具潜力的10家核心龙头

人形机器人,最具潜力的10家核心龙头

新浪财经
2026-07-01 01:14:28
日本被坑惨,高市早苗访问印度3天,更像去找莫迪兴师问罪

日本被坑惨,高市早苗访问印度3天,更像去找莫迪兴师问罪

光辉与阴暗
2026-07-03 02:53:31
两性关系:不管你信不信,女性过了45岁后,基本都有这7个现状

两性关系:不管你信不信,女性过了45岁后,基本都有这7个现状

荔子言
2026-06-11 13:28:05
霍震霆回应霍启山和演员娜然恋情:这件喜事等霍启山自己答,最好直接跟他交流;此前霍启山被曝与演员娜然计划今年在海南三亚举办婚礼

霍震霆回应霍启山和演员娜然恋情:这件喜事等霍启山自己答,最好直接跟他交流;此前霍启山被曝与演员娜然计划今年在海南三亚举办婚礼

鲁中晨报
2026-07-02 09:42:03
2026-07-03 06:40:49
美林数据Tempodata
美林数据Tempodata
数据分析与应用服务提供商
279文章数 20关注度
往期回顾 全部

科技要闻

马斯克不承认,但SpaceX就该造AI手机

头条要闻

俄罗斯大使馆遇袭 2年多遭袭击次数已超25次

头条要闻

俄罗斯大使馆遇袭 2年多遭袭击次数已超25次

体育要闻

韩国人,为什么恨透了洪明甫?

娱乐要闻

众星祝福祖国,曾沛慈原形毕露?

财经要闻

千亿茶市场无赢家:澜沧巨亏 八马停"蹄"

汽车要闻

有纯电有增程 还有二代VLA支持 小鹏MONA L03预售价14.38万起

态度原创

艺术
游戏
数码
健康
家居

艺术要闻

世界上最惊险的10个地方,中国竟然有3个!

索尼砍掉光驱和光盘原因曝光!是为了补贴PS6硬件亏空

数码要闻

卓威同步发布XQ2766X显示器:27" QHD 360Hz TN

这4类消化病患者 吃粘食管住嘴

家居要闻

传奇筑 日常诗

无障碍浏览 进入关怀版