使用Intellij Idea编写Spark应用程序(Scala+SBT)
2017-12-14 16:11
316 查看
对Scala代码进行打包编译时,可以采用Maven,也可以采用SBT,相对而言,业界更多使用SBT。之前有篇博客我们介绍了使用Intellij Idea编写Spark应用程序(Scala+Maven),采用的是Maven工具。今天这篇博客同样是使用Intellij
Idea编写Spark应用程序,但是使用的是SBT工具。下面开始我们的教程。
Ubuntu 16.04
Spark 2.1.0
Intellij Idea (Version 2017.1)
安装Scala插件,该Scala插件自带SBT工具。如果已经安装Scala插件,即可跳过此步骤
点击Install,即可安装Scala插件。
如下图,按顺序执行如下操作:
新建项目
选择Scala--->SBT
设置项目名,点击Finish即可。
这里需要设置Scala的版本必须2.11.*的版本号。因为Spark 2.0是基于Scala 2.11构建的。这个可以在Spark的官网查到,如下图:
利用Spark的官网查到Spark artifacts的相关版本号,如下图:
编辑Intellij Idea项目中是build.sbt:
编辑后,Intellij Idea弹出提示,如图:
可以选择Refresh Project手动刷新,也可以选择Enable auto-import让Intellij Idea以后每次遇到build.sbt更新后自动导入依赖包。
这里,选择Enable auto-import.
执行如下命令,新建word.txt测试文件:
在Intellij Idea的src/main/scala项目目录下新建WordCount.scala文件,如下图:
内容如下:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}
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 = "file:///Users/Ruanrc/word.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)
}
}
scala
右键WordCount.scala,选择执行该文件,如下图:
即可在Intellij Idea下面看到输出结果。
Idea编写Spark应用程序,但是使用的是SBT工具。下面开始我们的教程。
运行环境
Ubuntu 16.04Spark 2.1.0
Intellij Idea (Version 2017.1)
安装Scala插件
安装Scala插件,该Scala插件自带SBT工具。如果已经安装Scala插件,即可跳过此步骤点击Install,即可安装Scala插件。
构建基于SBT的Scala项目
如下图,按顺序执行如下操作:新建项目
选择Scala--->SBT
设置项目名,点击Finish即可。
这里需要设置Scala的版本必须2.11.*的版本号。因为Spark 2.0是基于Scala 2.11构建的。这个可以在Spark的官网查到,如下图:
利用SBT 添加依赖包
利用Spark的官网查到Spark artifacts的相关版本号,如下图:编辑Intellij Idea项目中是build.sbt:
name := "SBTTest" version := "1.0" scalaVersion := "2.11.8" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
编辑后,Intellij Idea弹出提示,如图:
可以选择Refresh Project手动刷新,也可以选择Enable auto-import让Intellij Idea以后每次遇到build.sbt更新后自动导入依赖包。
这里,选择Enable auto-import.
创建WordCount实例
执行如下命令,新建word.txt测试文件:echo "hadoop hello spark hello world" >> ~/word.txt
在Intellij Idea的src/main/scala项目目录下新建WordCount.scala文件,如下图:
内容如下:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}
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 = "file:///Users/Ruanrc/word.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)
}
}
scala
右键WordCount.scala,选择执行该文件,如下图:
即可在Intellij Idea下面看到输出结果。
相关文章推荐
- 使用IntelliJ IDEA编写Scala在Spark中运行
- IntelliJ IDEA使用SBT构建一个AKKA Scala程序
- 使用IDEA编写Spark应用程序
- 使用Scala语言开发Spark应用程序是自然而然的事情
- 使用Java编写并运行Spark应用程序
- Scala系列2、使用Intellij IDEA编写hello world
- 使用Scala语言开发Spark应用程序是
- Intellij idea使用java编写并执行spark程序
- 使用Java编写并运行Spark应用程序
- 使用IntelliJ IDEA开发Spark1.0.0应用程序
- Intellij IDEA使用Maven搭建spark开发环境(scala)
- sbt的安装以及用sbt编译打包scala编写的spark程序
- 使用Java编写并运行Spark应用程序
- 使用 IntelliJ IDEA打包Spark应用程序
- 使用Java编写并运行Spark应用程序
- 使用 IntelliJ IDEA打包Spark应用程序
- 使用Java编写并运行Spark应用程序
- Spark 实战,第 1 部分: 使用 Scala 语言开发 Spark 应用程序
- 使用IDEA编写基于Scala的spark程序中的常见问题
- 编写第一个用scala写的spark任务,用sbt打包成jar,并单机模式下运行