基於spark運行scala程序(sbt和命令行方法)

      在前面搭建好scala和spark的開發環境之後,迫不及待地想基於spark運行一下scala程序,於是找到了spark官方網站的鏈接(http://spark.apache.org/docs/latest/quick-start.html),介紹如何運行scala程序。現將具體的操作步驟詳細介紹如下。

     鏈接中給出了一個SimpleApp.scala的例程,我們通過比較各種編輯器發現sublime text這個編輯器對scala語言有高亮功能,易於代碼閱讀,如下圖所示。


     此段程序主要功能通過兩個job並行分析spark自帶的README.md文件中包含a和b字母分別有多少行。

      另外我們還需要建立一個simple.sbt文件,來加入spark庫依賴,scala程序執行的時候便可以調用spark庫。


       建立好simple.sbt文件後,由於需要對整個工程進行打包成jar文件才能執行,官網建議使用sbt(simple buildtool)這個工具對整個工程進行打包,而sbt對工程的目錄有一定的要求,如下圖所示建立好工程目錄。


     由於sbt工具並不是linux自帶的軟件,因此還需要安裝,我這裏由於安裝sbt的時候是在linux電腦上直接安裝的,不方便截圖,因此不做過多說明,安裝好了sbt工具後,運行sbt package命令(電腦需要聯網),電腦會分析工程自行下載一些其他需要的文件,然後將文件打包,在我的電腦上在下圖所示的目錄中會生成simple-project_2.10-1.0.jar的包。


     這個時候運行spark-submit命令並附帶一些參數便可得到結果。



     我們看到包含a的行數爲73行,包含b的行數爲35行。


     後面我發現對於MLlib的例程代碼(http://spark.apache.org/docs/latest/mllib-linear-methods.html#logistic-regression),通過上面的方式貌似不可行,也即會編譯報錯,結合對linux命令行的認識,通過命令行執行了MLlib的例程,如下圖所示。

      通過cat 和管道命令,將程序輸入到 spark-shell中,便可以順利執行了,如下圖。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章