在Intellij中開發Spark--demo

weixin_34402408發表於2017-06-20
  • 演示在Intellij中開發Spark,使用sbt構建工具,scala語言。
  • 執行方式:1.在intellij中直接執行spark。2.打包執行(參考官網快速開始中Self-Contained Applications節的內容)

新建工程SparkStudy

1.新建sbt專案

3458176-21b0195a04dde667.png
image.png
3458176-3bbe063fa0fd1366.png
image.png

2.開啟SBT檢視

3458176-0e4d75ec2bd5cd7f.png
image.png
3458176-1cf933f546a3164e.png
image.png

開發

在build.sbt中新增spark依賴

lazy val commonSettings=Seq(
  version := "1.0",
  scalaVersion := "2.10.6"
)

lazy val root = (project in file("."))
  .settings(
    commonSettings,
    name:="SparkStudy",
    libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.6.1"
  )
  • 此時需要等依賴都下載完成,如果下載失敗需要重新下載,下載完成後專案的External Libraries中會出現下載好的依賴。


    3458176-81c55764aba2ae64.png
    image.png

編寫WordCount物件

import org.apache.spark.{SparkConf, SparkContext}

/**
  * Created by zhouliang6 on 2017/6/20.
  */
object WordCount {
  def main(args: Array[String]) {
    val logFile ="D:\work\SparkStudy\\application.log";

    val conf = new SparkConf().setAppName("WordCount").setMaster("local");

    val sc = new SparkContext(conf)
    val logData = sc.textFile(logFile, 2).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
    print("---------------");
  }
}

1.配置直接在intellij中執行

3458176-6e79097edeee9972.png
image.png

點選執行

3458176-ab8643d5c52d328b.png
image.png

執行結果

3458176-6bfbae64f4dc5b7b.png
image.png

2.配置打成jar包在外部執行

  • 1.直接點選SBT檢視中--》SBT Tasks-》package--》打包完成
  • 2.或者配置run Configuration,然後在點選執行--》打包完成
3458176-1ddcd41e51173bee.png
image.png
3458176-7b5d3767de27293e.png
image.png

命令列中執行

  • 進入sparkstudy_2.10-1.0.jar目錄下執行如下命令。
spark-submit --class "WordCount"  --master local[4]  sparkstudy_2.10-1.0.jar
3458176-c3e28f9262978523.png
命令列中執行

執行結果

3458176-9a1a99355fd3c648.png
image.png

參考:
Spark入門實戰系列--3.Spark程式設計模型(下)--IDEA搭建及實戰

相關文章