idea中spark工程创建(scala+sbt)

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)
  }
}

··· 之后右键运行即可。

转载于:https://my.oschina.net/u/3825598/blog/1789861

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值