1.前期准备
安装java、scala、idea等必要软件
2.idea中安装scala插件
因为spark是使用scala语言开发的,虽然提供了java、python等语言客户端,但使用scala语言开发是最简单、易用、稳定的。所有选择scala开发。在idea中开发scala需要安装scala插件。安装完之后就可以使用idea开发scala程序了。
注意:插件的安装具体可以百度,需要注意的是,如果在线安装不了需要手动下载之后安装。同时有的版本与idea版本不一致导致sbt构建工具不能构建的问题。最好选择与idea对应的版本(我的idea是2017.2.6的安装scala插件2017.3.5及以上的都不可以,而2017.2.6及以下版本可以本文安装的就是这个版本)。
3.idea中用sbt构建scala工程
idea中点击file->new->project 图中sbt代表用sbt构建工具、如果想直接用scala sdk创建一个项目就选择IDEA。此外Play2.x是一个框架,Activator代表用Typesafe Activator 模版创建项目,我们一般创建scala项目不用构建工具就选择IDEA,用sbt构建工具就行sbt。选择sbt后点击Next
之后填写项目名,配置JDK版本,SBT版本,以及scala版本。其中scala版本需要注意一下,scala的版本必须与spark编译所使用的版本一致。 通过spark官网查询scala版本 从图中可知从spark2.0版本开始是根据sacla2.11版本构建的,因此本文在idea的sbt中选择scala的2.11.8版本。点击Finsh完成构建。
构建完成后目录结构如下
4.添加spark依赖
创建完工程后build.sbt的内容如下
name := "sbttest"
version := "0.1"
scalaVersion := "2.11.8"
根据第三步中spark下载页面中有一半Link with Spark 其中列出了spark的Maven依赖版本,因此我们在build.sbt文件中添加如下内容
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.2.0"
修改build.sbt文件后idea编辑页面会出现build.sbu was changed 提示选择Refresh Project即可。
5.运行wordcount实例
在idea中项目的找到src->main->scala文件夹,右键文件夹->new-> package,之后再包里右键->new->sbt class创建class文件。注意kind中选择object
在新建的WordCount文件中输入如下代码 ··· package com.zheng.test
import org.apache.spark.{SparkConf, SparkContext}
object WordCount{
def main(args: Array[String]): Unit = {
val inputFile = "D:\IdeaProjects\sbt-test\build.sbt"
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)
}
}
··· 之后右键运行即可。