使用Intellij Idea編寫Spark應用程式(Scala+SBT)
今天這篇部落格同樣是使用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
相關文章
- 使用IntelliJ IDEA編寫Scala在Spark中執行IntelliJIdeaSpark
- 使用Intellij IDEA遠端除錯Spark程式IntelliJIdea除錯Spark
- Learning Spark——使用Intellij Idea開發基於Maven的Spark程式SparkIntelliJIdeaMaven
- 在IntelliJ idea中使用docker除錯Spring Boot應用程式IntelliJIdeaDocker除錯Spring Boot
- 使用 IntelliJ IDEA 匯入 Spark 最新原始碼及編譯 Spark 原始碼(博主強烈推薦)IntelliJIdeaSpark原始碼編譯
- 在IntelliJ IDEA中建立和執行java/scala/spark程式IntelliJIdeaJavaSpark
- IntelliJ IDEA使用IntelliJIdea
- 使用rust編寫dwm status-bar應用程式Rust
- 好程式設計師大資料教程:SparkShell和IDEA中編寫Spark程式程式設計師大資料SparkIdea
- IntelliJ IDEA 最常用配置,應用、永久啟用IntelliJIdea
- IntelliJ IDEA 啟用教程,最新啟用碼 IDEA使用技巧IntelliJIdea
- IntelliJ IDEA 超實用使用技巧分享IntelliJIdea
- IDEA開發Spark應用並提交本地Spark 2.1.0 standIdeaSpark
- 用PHP編寫Android應用程式PHPAndroid
- IntelliJ IDEA的使用IntelliJIdea
- IDEA開發Spark應用實戰(Scala)IdeaSpark
- IntelliJ IDEA 啟用(最新)IntelliJIdea
- 編寫友好的命令列應用程式命令列
- 編寫iOS應用程式有何不同iOS
- Intellij IDEA 中 使用 GitIntelliJIdeaGit
- IntelliJ IDEA-使用教程IntelliJIdea
- 編寫第一個HADOOP應用程式Hadoop
- 為Linux 應用程式編寫 DLL(轉)Linux
- Intellij IDEA開發Scala程式IntelliJIdea
- intelliJ idea程式碼摺疊IntelliJIdea
- IntelliJ IDEA 使用總結[zz]IntelliJIdea
- IntelliJ IDEA 概要 [翻譯](IntelliJ IDEA Essentials)IntelliJIdea
- Go 編寫 Web 應用GoWeb
- IntelliJ IDEA 17 本地LicenseServer啟用IntelliJIdeaServer
- IntelliJ IDEA 註冊碼啟用IntelliJIdea
- IntelliJ Idea編譯報錯:請使用 -source 7 或更高版本以啟用 diamond 運算子IntelliJIdea編譯
- 【IntelliJ IDEA】IntelliJIdea
- 如何將Emacs定義為IntelliJ IDEA的外部編輯器使用?MacIntelliJIdea
- Spark1.0.0 應用程式部署工具spark-submitSparkMIT
- 編寫Spark程式的幾個最佳化點Spark
- 使用Golang語言編寫Hello World Web應用GolangWeb
- 使用flutter編寫一款視訊應用Flutter
- 使用Scala編寫Spark程式求基站下移動使用者停留時長TopNSpark