使用Intellij Idea編寫Spark應用程式(Scala+SBT)

歸來少年Plus發表於2020-08-06

今天這篇部落格同樣是使用Intellij Idea編寫Spark應用程式,但是使用的是SBT工具。下面開始我們的教程。

執行環境

mac OS系統
Spark 2.4.5
Intellij Idea (Version 2019.1)

構建基於SBT的Scala專案

如下圖,按順序執行如下操作:
新建專案
在這裡插入圖片描述
選擇Scala—>SBT
在這裡插入圖片描述
設定專案名,點選Finish即可。
在這裡插入圖片描述
這裡需要設定Scala的版本必須2.11.*的版本號。因為Spark 2.0是基於Scala 2.11構建的。這個可以在Spark的官網查到,如下圖:

Note that, Spark 2.x is pre-built with Scala 2.11 except version
2.4.2, which is pre-built with Scala 2.12. Spark 3.0+ is pre-built with Scala 2.12.

利用SBT 新增依賴包

利用Spark的官網查到Spark artifacts的相關版本號,如下圖:
在這裡插入圖片描述
編輯Intellij Idea專案中是build.sbt:

name := "wordcount"

version := "0.1"

scalaVersion := "2.11.12"


libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"

可以選擇Refresh Project手動重新整理,也可以選擇Enable auto-import讓Intellij Idea以後每次遇到build.sbt更新後自動匯入依賴包。
這裡,選擇Enable auto-import.

建立WordCount例項

在Intellij Idea的src/main/scala專案目錄下新建WordCount.scala檔案,如下圖(注意看圖下面的備註):
在這裡插入圖片描述
備註:這裡需要注意,在Intellij Idea啟動時,會執行“dump project structure from sbt”的操作,也就是把sbt所需要的專案結構從遠端伺服器拉取到本地,在本地會生成sbt所需要的專案結構。由於是從國外的遠端伺服器下載,所以,這個過程很慢,筆者電腦上執行了15分鐘。這個過程沒有結束之前,上圖中的“File->New”彈出的子選單是找不到Scala Class這個選項的。所以,一定要等“dump project structure from sbt”的操作全部執行結束以後,再去按照上圖操作來新建Scala Class檔案。

新建Scala Class檔案的程式碼如下:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}

/**
  * @author 
  * @date 2020-08-06 10:45
  * @version 1.0
  */

object WordCount {
  def main(args: Array[String]) {
    //遮蔽日誌
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
    val inputFile =  "/Users/navyliu/Downloads/Spark/helloSpark.txt"
    val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
    val sc = new SparkContext(conf)
    val textFile = sc.textFile(inputFile)
    val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
    wordCount.foreach(println)
  }
}

右鍵WordCount.scala,選擇執行該檔案,如下圖:
在這裡插入圖片描述
即可在Intellij Idea下面看到輸出結果。
如下圖所示:
在這裡插入圖片描述
如果想了解更多scala的想關內容,請關注公眾號:架構師plus
在這裡插入圖片描述

相關文章