最近学习scala和spark,想在IntelliJ中利用scala编写Spark单机应用程序,遇到很多坑,在解决的过程中学到不少东西,现记录一下。
- 关于sparkJar包导入问题
scala是在JVM上运行的编程语言,可利用java包,因此在项目包管理中需要选择JDK版本(不同JDK版本对应的环境不一样)以及scala-sdk。其中JDK可以在自己安装Java的路径下找到对应的JDK(当然IntelliJ会根据环境变量PATH帮你自动找到你电脑中可用的JDK),scala-sdk在初次使用时需要利用sbt-downloader下载不同版本的sdk(这里需要注意的是,由于我下载的spark中的spark-sql的版本为2.11,所以应该选择scala-sdk版本为2.11-X,否则会出错)。
我们需要编写spark应用,首先下载spark,在安装目录下会发现有jars ,Python、R等不同文件夹,spark支持Java、scala、Python、R语言,其中要想利用scala和Java编写spark应用就是要利用jars包,所以在project-structure中的libraries增加Java包,选择spark安装路径下的jars文件夹,这样才可以在项目中导入spark的jar包。 - 关于单机运行spark应用
由于编写的spark应用是在自己电脑上单机模式运行,故需要在run-configuration中设置VM option为-Dspark.master=local(相当于设置spark本地运行)否则会提示master URL未指定