1. 程式人生 > >大資料工程師為什麼要學習scala

大資料工程師為什麼要學習scala

>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/