回覆列表
-
1 # 方舟資料
-
2 # 寫程式設計師的程式碼
1、構建系統的選擇,sbt更合適用來構建Scala工程,maven更合適用來構建Java工程。
2、對於spark中的API來說,Java和Scala有差別,但差別並不大。
3、如果用Scala開發spark原型程式,可以用spark-shell“打草稿”,或者直接使用spark-shell做互動式實時查詢。
4、用Scala程式碼量將減少甚至一個數量級,不過Scala的使用門檻較高
5、Scala 開發效率更高,程式碼更精簡。
6、使用Spark過程中出現異常情況,在排查時如果對Spark原始碼比較熟悉,可以事半功倍。
7、另外Spark基本使用函數語言程式設計,使用Java的話可能需要寫一大堆匿名類,而Scala只需要一個lambda表示式。
8、Java不支援自動型別推導,RDD類基本都是範型,宣告時需要寫一串類型別,而Scala基本可以省略變數型別。
綜上所述:
就個人體會來說,Scala相對於Java的優勢是巨大的。熟悉Scala之後再看Java程式碼,有種讀彙編的感覺……
另外,如果喜歡,可以混合Java和Scala,因為二者最終都是編譯成class檔案,使用Scala能夠隨意呼叫Java實現的類和方法。
從表面上看,無論採用哪種語言,都能完成一樣的功能,只是程式碼量有多有少,開發人員根據自己的情況選擇使用Java還是Scala都可。
據說目前最新的Java 8已經支援函式式介面了,Java 9也將推出Java Shell功能,慢慢地會變得和Scala一樣簡潔。
沒有實質性的區別。Scala 和java都是允許在jvm之上。只是Scala語法更簡潔,完成同樣的任務,Scala程式碼量更少,相對來說,bug較少,但對程式設計師的要求更高。