MAC下搭建Intellij IDEA+Scala SDK+Scala插件开发环境

MAC下搭建Intellij IDEA+Scala SDK+Scala插件环境

网上很多配置Scala开发环境的都不完整, 只安装了Scala插件,没有Scala SDK。亲试后如下:
前提环境:
Mac电脑+Intellij IDEA+JAVA 8
步骤如下:
1、安装Scala插件Intellij IDEA–>Configure–>Plugins
在输入框中输入Scala,找到Scala后,点击右边的install按钮,完成安装后重启Intellij IDEA生效
2、安装Scala SDK后命令行运行
下载Scala SDK: https://www.scala-lang.org/download/
在这里插入图片描述
在Other Resources里面选择scala-2.12.7.tgz Mac OS X, Unix, Cygwin 19.47M下载。解压拷贝scala-2.11.7文件夹至/usr/local/下
在命令行配置环境变量

vi ~/.bash_profile

添加环境变量SCALA_HOME

export SCALA_HOME="/usr/local/scala-2.11.7"

在PATH后加入$SCALA_HOME/bin

export PATH=$PATH:$M2_HOME/bin:$SCALA_HOME/bin

使环境变量生效

source .bash_profile

此时Scala环境已经配置完毕,在命令行输入scala后回车,进入Scala环境,要退出输入:q
3、在Intellij IDEA中编写Scala程序
Create New Project->Scala->在右边选择IDEA->next
此时Scala SDK显示No library selected,点击右边Create按钮,点击Browse,选择/usr/local/scala-2.11.7/lib文件夹确定。
此时Scala SDK识别出scala-sdk-2.12.7成功,在Project name中输入工程名称后点击finish。
4、在Intellij IDEA中使用sbt编写Scala程序(推荐)
Create New Project->Scala->在右边选择SBT->next
此时Scala SDK显示No library selected,点击右边Create按钮,点击Browse,选择/usr/local/scala-2.11.7/lib文件夹确定。
此时Scala SDK识别出scala-sdk-2.12.7成功,在Project name中输入工程名称sbttest后点击finish。
参考:Scala官方文档 https://docs.scala-lang.org/getting-started-sbt-track/getting-started-with-scala-and-sbt-on-the-command-line.html
可以看到sbt与maven的目录结构很相似,只是用build.sbt代替了pom.xml
在这里插入图片描述
习惯命令行的同学可在左下角的Terminal中运行find .来查看目录结构。修改build.sbt的内容(参考Spark官方文档的Scala sbt的例子)由
name := “sbttest”
version := “1.0”
scalaVersion := "2.12.1"修改为:
name := “sbttest”
version := “1.0”
scalaVersion := “2.11.7”
libraryDependencies += “org.apache.spark” % “spark-sql” % “2.3.1”
保存后提示build.sbt was changed,点击右边Refresh project,等待sbt下载依赖包完成。(目前Spark只支持Scala2.11.*)
在src/main/scala下新建SbtTest.scala文件,输入:

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
object SbtTest {
  def main(args: Array[String]) {
    val logFile = "/Users/darren/Downloads/spark-2.3.1-bin-hadoop2.7/README.md" // Should be some file on your system
    //val spark = SparkSession.builder.appName("Simple Application").getOrCreate()
    val conf = new SparkConf().setMaster("local").setAppName("sbttest")
    val sc = new SparkContext(conf)
    val logData = sc.textFile(logFile).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println(s"Lines with a: $numAs, Lines with b: $numBs")
    //spark.stop()
  }
}

运行完成了一个Spark的Scala程序。

猜你喜欢

转载自blog.csdn.net/weixin_42628594/article/details/82926892