回覆列表
  • 1 # 方舟資料

    沒有實質性的區別。Scala 和java都是允許在jvm之上。只是Scala語法更簡潔,完成同樣的任務,Scala程式碼量更少,相對來說,bug較少,但對程式設計師的要求更高。

  • 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一樣簡潔。

  • 中秋節和大豐收的關聯?
  • 為什麼我一上火哪裡嘴唇就起泡?