就个人体会来说,Scala相对于Java的优势是巨大的。熟悉Scala之后再看Java代码,有种读汇编的感觉……
如果仅仅是写Spark应用,并非一定要学Scala,可以直接用Spark的Java API或Python API。但因为语言上的差异,用Java开发Spark应用要罗嗦许多。好在带lambda的Java 8出来之后有所改善。
在Spark应用开发上,学Scala主要好处有二:
开发效率更高,代码更精简;
使用Spark过程中出现异常情况,在排查时如果对Spark源码比较熟悉,可以事半功倍。