大資料工程師為什麼要學習scala
阿新 • • 發佈:2018-12-17
>joey 周琦
現在很多資料處理用的是python或R, 那麼現在我們對比下scala和python在大資料處理方面的優劣:
- scala與python對比
- scala 相對於c語言慢2-3倍,但是python一般比c語言慢50倍。(只是大概,實際會情況不同)
- scala 缺少python那樣豐富的資料處理,機器學習的包(Numpy, scipy, matplotlib,panda, scikit-learn)。當然scala也有自己的包(MLibBreeze, ScalaLab and BIDMach),只不過現對於python不夠成熟,豐富
- python不是為大資料設計的,scala可以說是大資料導向的, 例MLlib相對於scikit-learn的演算法數目較少,但是它是天生適合大資料平行計算的。
- scala,python都是面嚮物件語言。scala也支援函式式(functional programming)程式設計,而pyton不支援,python的程式設計風格也因人而異
- 更多細節對比http://vschart.com/compare/scala/vs/python-programming-language
下面單獨談談scala的一些優勢:
- scala的優勢
- 基於JVM與JAVA的生態系統, 可方便利用現有的基於JVM的成熟應用如:HADOOP,Flink,Kafka. 另外Spark也是基於scala寫的
- 強大的併發性(Concurrency)
- 支援函數語言程式設計
- 更好支援分散式系統
以前用python比較多,初學SPARK,也跟著學了scala,文中觀點基本參考下面的文獻,後面學習如果有了新的心得,繼續補充
參考:
https://www.hakkalabs.co/articles/three-reasons-data-eng-learn-scala
https://tech.coursera.org/blog/2014/02/18/why-we-love-scala-at-coursera/
http://statrgy.com/2015/05/05/scala-vs-python/